Margin spacing fixes
Fixes #67

This addresses some of the issues with constraint editing and display.
In particular it deals with the issues surrounding existing but falsy
values, such as `0`, and with propagating change events to the right
places, and dealing with resetting the form properly.