feat($rootScope): optionally limit depth of $watch recursion

New parameter to `angular.equals` limits depth of recursion (default is infinite recursion).

$watch allows a new parameter to limit the depth of equals() when  objectEquality is true. Only effects simple objects or array-like objects.

While creating many $watches is not a totally performant feature, this is useful in the case of many nested directives which look at nested properties of the same object, and only really need to care about a single "level" of nested properties, or perhaps several levels.