Abstract the parser class. Fixes #2

This makes it so the class uses a parser_state class instead
of everything being in the parser class. Since the only thing
I needed was the line and column it didn't make much sense to
need a full blown class for it. Also worth noting that I made
all the functions void since returning a const char* was just
for the parser state as well.