Implement a more rigid is length check

Stuck in an airport today so going to get around to a couple of these things we really should get it

As discussed in https://github.com/jashkenas/underscore/issues/1590 and others. [Here's jdd's implementation for a reference](https://github.com/lodash/lodash/blob/master/lodash.js#L3646-3655), also as discussed in that thread it may make sense to check for a `splice`/`slice` function to  consider a method a true array in places like  `_.isEmpty`
While 2<sup>53</sup> is the actual _max_ integer, the ES6 spec says (2<sup>53</sup> - 1) is the maximum useable for anything array related.