It might not be obvious to everyone that IE 9 & Android 4.0 are not ES5-compliant browsers (by a large margin) so it's better to add a support comment. This requires slight changes in parsing the config file as it's not a pure JSON anymore. JSHint understands such files without problems. Closes gh-2520
Custom mouseenter/mouseleave implementation was needed because of: 1. Safari 6 not implementing mouseenter/mouseleave at all. 2. Chrome sending mouseenter too often. The second issue has been fixed in Chrome but exists now in Safari 7 (it's fixed in Safari 8) so we have to keep it for now, unfortunately.
Support comments that mentioned only Safari < 7 were checked & updated to account for bugs existing in newer versions as well; Safari 6 support test results were removed. Refs gh-2482
Using modules for window.setTimeout etc. made those functions cached and disabled Sinon mocking, making effects tests fail. Just writing window.setTimeout directly is smaller anyway.