feat(angular.extend) - Simple non-breaking change to support deep extend

People use `angular.extend()` as a utility function, whether or not it's designed for that purpose. It can easily be extended to support recursive merging with very very minor additions. Developers coming to Angular expect `extend()` to support this.
Please add the tests I've been asking for, and address all of the comments I've brought up --- then we can land this.

You can avoid the complicated squash in the future by just doing `git commit --amend` rather than adding new commits