Factor out ES helpers.

This is the first part of PR #210.  It has the refactorings to add `ES.TypeIsObject`, `ES.IsObject`, `ES.IsCallable`, `ES.IsIterable`, `ES.GetIterator`, `ES.IteratorNext`, `ES.ToInteger`, and `ES.ToLength` helpers, and ensures that we use these in the right places (implementation audited versus the Jan 20, 2014 spec).

It throws in a fix for the `.length` property of the `String.raw` function while it's at it.

Closes #208