Optimize and keep arity in compose

a nit here on the `this` binding of the functions executed. In this case the first function is bound with `null`, if the given function is in strict mode the `this` will be `null` else it will be global object where as the other calls will have a `this` of either `undefined` or global object.