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`
```
var MAX_SAFE_INTEGER = Math.pow(2, 53) - 1;

MAX_SAFE_INTEGER + 2 === MAX_SAFE_INTEGER + 1
```

I'll change how thats written though