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.
What happens if a required attribute is not present? It doesn't look like this can be detected right now, but since all attributes are mandatory, this is important.