Add ES.TypeIsObject, ES.ToObject, and ES.IsCallable helpers.

In the process found a little bug in the String.raw test suite; String.raw
should throw a TypeError if the `callSite` object passed does not have an
Object value for its `raw` field. (Checked against Jan 20, 2014 spec.)

Fixes #208.
String.raw should have length === 1, according to the spec.
Add ES.IsIterable, ES.GetIterator, and ES.IteratorNext helpers.

The definition of IsIterable is actually missing from the current
draft of the spec (https://bugs.ecmascript.org/show_bug.cgi?id=2486)
but we can make a reasonable guess.
Add Number.isInteger; rename ES.toInteger helper to ES.ToInteger.

Also trim the Number.isSafeInteger() test suite a bit to reduce duplicate
test cases.
Add ES.ToLength helper.

The ES6 spec added a ToLength helper in the August 23, 2013 draft (rev 17).
This is used to eliminate the 2^32 length limit for array-like
objects.  Audit places in the ES6 spec where ToLength is used and
ensure we do the same in es6-shim.  Some additional minor
spec-compliance fixups were made in the process.
Merge pull request #212 from cscott/gh-208

Refactor to add ES.TypeIsObject, ES.IsObject, ES.IsCallable, ES.IsIterable, ES.GetIterator, ES.IteratorNext, ES.ToInteger, and ES.ToLength helpers, and ensure that we use these in the right places (implementation audited versus the Jan 20, 2014 spec).  Throw in a fix for the .length property of the String.raw function while we're at it.

Closes #208, #212.
Add jshint to `npm test` to keep code clean.

Added two jshint annotations to allow `== null` in the places where we
explicitly want to test against null and undefined.
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
Merge pull request #215 from cscott/promise-improvements

Promise improvements
Fix Array#find and Array#findIndex on sparse arrays.

The Array#find and Array#findIndex methods should skip elements which are
not present in the array-like object, but not terminate the search.
Merge pull request #213 from cscott/fix-array

Fix Array#find and Array#findIndex on sparse arrays.
Rename Number.prototype.clz() to Math.clz32().

This was decided in the Jan 28, 2014 ES6 meeting:
https://github.com/rwaldron/tc39-notes/blob/master/es6/2014-01/jan-28.md#clz-count-leading-zeros

There are some questions WRT the spec:
https://bugs.ecmascript.org/show_bug.cgi?id=2465
Add Array.from() test cases mentioned in last ES6 meeting.

From https://github.com/rwaldron/tc39-notes/blob/master/es6/2014-01/jan-28.md#arrayfrom