Attribute Serialization

It is now possible to serialize attributes. They're pretty verbose, so
hopefully there are things that can be cut out (probably need to revisit
the way aspects work)
Blocked spinning camera update

The camera is now prevented from spinning around nodes when you try to
start spinning (by clicking) while you are inside a gui element.
Spinning can continue while the mouse is blocked, as long as the
spinning was initialized while unlocked.

This is the opposite of the old blocking behavior, which prevented
spinning altogether while the mouse was inside a gui element, but
clicking inside a gui element and dragging out to an unblocked region
would allow spinning.