Optimize native promisification and support multiple arguments

Could be more optimal but leaking `arguments` was the biggest offender.

Also I am not sure if any APis being wrapped ever calls the callback with more than `err, result`