Fix #1171: Split: Sometimes remove leading empty match

The conditions were determined experimentally since the JavaDoc is
note precise enough.
The post-processing logic is wrong, because it should only remove the leading empty element if the match that produced it is zero-length. Consider this:

```scala
"abc".split("a") // -> Array("", "bc")
```