add orp2, orp3, notp2, notp3, split parser state to parserdata and parsercursor

add orp2, orp3, notp2, notp3, which process trail and solver.parsercursor differently.
split parser state to parserdata and parsercursor, because parserdata does not change frequently.
510 tests passed.