Use erase instead of substr

- Also, tokens store a pointer to the filename as opposed to copying the
string.

Managed to improve speed by about 30%.

I think copying the strings in the munch functions, and even substringing via pc is still costing a lot of time.  Next idea is to just use a pointer into input, since it stays const.