Arity-based parameter overloading

A better proposal to have better names of functions in the standard lib.
Actually these functions can already be eliminated by using `take()` on `CharSplits`. In fact the implementation of `CharSplitsN` is basically a copy of the implementation of `take()` plus a copy of the implementation `rev()` (for `rsplit` and `rsplitn`). So it's possible to eliminate this duplication today without any new language features. Just drop `splitn`, `rsplit` and `rsplitn` because they're redundant.