Properly implement String#split

Correctly performs all the examples from the MRI rdoc.
Merge remote-tracking branch 'origin/refine-string-split'