Add a user context.

So that we aren't forced to use global variables. With this the user can create the parser, set the user context. And then in the parse callback, get that context and save the parse results in there.