implement symbol table (#79)

This ended up being easier than I thought (or at least that's what I'm hoping)
Furthermore, shouldn't all these things go into the same symbol table? We still can't allow a `Node` to have the same symbol as a `Connection`.