Fix String.split with empty string arg

It now returns the input string split at every character.
The same goes for regular expressions that don't match anything.

Also fixed capture groups not matching anything, which should
yield an 'undefined' value instead of an empty string.

Standard ref: http://www.ecma-international.org/ecma-262/5.1/#sec-15.5.4.14
Enabled previously failing unit tests and added more tests.
Output compared with node (V8).