Group.setProperty will check property without breaking the prototype chain.

Addresses #828, so that ```setProperty``` and the functions that use it can change properties up the prototype chain.

```in``` is somewhat slower than ```Object.hasOwnProperty``` but not by a lot. Comparing the keys using ```typeof key[0] !== 'undefined'``` would be much faster but means that properties which exist, but have been set to undefined, would not be set.