refactor:(angular.extend) support recursive merging

Support recursive merging of objects

This does not create any breaking changes