fix(isArrayLike): Correct logic in isArrayLike to screen out objects

- Fix ngRepeat check via isArrayLike check to prevent objects from
  accidentally passing as array-like

This addresses #8000 & #4751.
How about `(length === 0 && Object.keys(obj).length <= 1)` (to account for cases where `length` is non-enumerable) ?