Implement symbol table

This ended up being easier than I thought (or at least that's what I'm hoping)

Fixes #79