Move Symbol stuff into Parser object

get rid of all the global state
interface is the same, more or less, just now with a local Parser object