Node/Connection deserialization

Deserialization for nodes and connections! I only did some basic testing
but everything seems to be good.

Attributes are pretty FUBAR and we definitely need to refactor how they
work in the future, but as far as I know they're not necessary for our
MVP.

Constraints are also still pending.
One thing you could try is, if you have type information about the object whose attributes you're getting, try parsing that type explicitly. 

For example, you're deserializing a node whose type is "register". You look in the Schematic and see that "register" is a node type whose attributes are "foo => bool" and "bar => int". In the attributes section, when you see an attribute whose key is "foo", you deserialize the value as "bool" or throw an exception, and when you see an attribute whose key is "bar", you deserialize the value as "int" or throw an exception.

If you have the type information from earlier, you can use that when you deserialize. Does that make sense?