fix(Angular.js): Improve logic powering isArrayLike()

Enable isArrayLike() to correctly identify one-off-arrays (aka
'subclasses').
Thus array-like objects with enhanced prototypes can be used with
ng-repeat.
Previously, they would be misidentified as objects and not iterate
correctly.