Ensuring `new`

Ensuring `new` is called on constructor so `this` is avaliable for `defineGetter`
Tests

Adding `set` tests
fixing typo

Probably a copy/paste typo

When an object is passed in as the key, extend `this` with the object.
Tests

Adding tests for `get`