Implement symbol table

This ended up being easier than I thought (or at least that's what I'm hoping)

Fixes #79
As long as you considered the situation, I trust you to make the right decision here.