isArguments method
Merge pull request #214 from cscott/jshint

Add jshint to `npm test` to keep code clean.
Merge pull request #216 from ljharb/is_arguments

Adding an isArguments method.
De-lint isArguments().

jshint really didn't like the original version of isArguments, and there
was a call to `toString` that should have been `_toString`.
Support using `arguments` as an iterable.

We can't add an @@iterator field to the prototype of `arguments`, so we
need to special case it in ES.GetIterator and ES.IsIterable instead.
Ensure that Promise.all() works on array-like objects as well as arrays.
Fix Promise.prototype.then to conform to spec.

I assumed there was a think-o in the spec, but the behavior was apparently
intentional.  See https://bugs.ecmascript.org/show_bug.cgi?id=2513
Rename Promise.cast to Promise.resolve; remove old Promise.resolve.

As resolved in Jan 30, 2014 ES6 meeting:
https://github.com/rwaldron/tc39-notes/blob/master/es6/2014-01/jan-30.md#conclusionresolution-3