Arguments optimization.

Fixes #5 

Couldn't reliable do `var args = new Array(l - 1);` because sometimes `l = 0` and that breaks the `Array` constructor. Also change test descriptions to be in line with new style guide.
Same for any of these that require splicing