Arity-based parameter overloading

A better proposal to have better names of functions in the standard lib.
I should probably mention here that in the referenced bug report, @alexcrichton explained that I was wrong on this point: `split().take()` and `splitn()` in fact have different semantics.