Make String.split behave more like Regex.split

See #2127 for original issue.

This is my first pass at this. It keeps the old `:global` functionality, but is easily deprecated when the time comes. Some of the extra conditional logic here is to keep the behavior of `String.split` and `Regex.split` consistent. If you have any suggestions on how to improve this, fire away!

cc @alco