Standards compliant approach to allowing _.extend to copy ES5 Getters/Setters

Looked through the approaches in the past and saw they were not standards compliant.

Uses `Object.defineProperty()` and `Object.getOwnPropertyDescriptor()` which are at least partially supported back to IE8.