Making split unicode correct

Also marked as safe, but not pure (because of the foreach body)
unittests for splitwhite
Better implementation of split.

This makes it:
1. Faster
2. Pure
3. dchar is nothrow
Use Appender in split!SomeString