renaming defineProperty -> setProperty to maintain a distinction in
naming
Object.merge will now support property descriptors which includes
merging non-enumerable properties and property accessors. (Issue #396)