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.
For instance:

```js
Object.keys(4); // will return the own-enumerable-property-keys of `new Number(4);` --- that's not very useful! It won't have any own properties.
```