extend the extend method to be able working correctly with getters and setters of a property

example: 
```javascript
_.extend({},{get foo() {return this.bar()}})
```
Since current implementation does direct assignment involving getter invocation, in the best case it'll assign result of getter function or like in example above will throw exception.