fix($rootScope) ensure $watchCollection correctly handles arrayLike objects
fix(ngRepeat): correctly iterate over array-like objects

Check if the object is array-like to iterate over it like it's done with arrays.

Closes #2546
fix(ngView): accidentally compiling leaving content

closes: #2304
feat(injector): add has method for querying

Closes #2556
fix(ngAnamite): eval ng-animate expression on each animation
fix($location): prevent navigation if already on the URL
fix($location): compare against actual instead of current URL
feat(ngInclude): $includeContentRequested event

Adding a $includeContentRequested event in order to better keep track of
how many includes are sent and be able to compare it with how many have
finished.