parser: remove do_shift()/do_reduce() and do work directly in switch

Signed-off-by: Peter Williams <pwil3058@gmail.com>
parser: separate out the parser stack as a struct

Signed-off-by: Peter Williams <pwil3058@gmail.com>
parser: move stack component of error recovery into ParseStack

Signed-off-by: Peter Williams <pwil3058@gmail.com>