Houston preserves types on edits

All it really does is feed the new value into the old values constructor, then saves it, so this assumes that `new constructor(val.toString()) == val`, which I think should be true.

Fixes #181 
Fixes #173 
Fixes #147 
I look up the old object using the id, and get the old value of the field being changed.