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`
Would it be better to call is `MAX_ARRAY_INDEX` instead? Might have cleared up @michaelficarra's confusion?