Use setImmediate shim for browsers that don't support it.
Simplify and correct test ArrayReader.
Have a separate testing regex for JavaScript engines that retain match location.
Fix size 0 test for IE8.
Test with latest versions of browsers.