Allow ordering for Array inheritors

Hello,

yesterday I faced an issue with angular.
We use Coffeescript and its classes very widely in our rails project. We have a BaseCollection class, which was inherited from Array. It works cool, but there's one negative effect: I was unable to order this object with ng-repeat and orderBy.

I started digging and revealed, that angular rejects any objects, but Arrays itself. The problem was that Array.isArray does not define Array inheritors as arrays, while when I inherite from class I must follow the Liskov substitution principle and not to break Array functionality (and we do in our project).

Here's [a short demonstration](http://jsfiddle.net/2ja03bfn/7) of the issue. Issue can be reproduced in 1.2.x, but in 1.1.x everything works fine.

I suggest to allow array-like objects to be sorted. I've also added a test to cover this and checked the green-red-green process with `grunt test:jqlite`. Please take a look at my fix or fix that issue by yourself in more diligent way.
I've been trying, and it works well, so I've switched to `isArrayLike()`, since it's a common way for the Angular projects, as far as I understand. Thanks.