OUT: rename NonOptimizingInfixOpProduction to just InfixOpProduction

Signed-off-by: Gregory M. Turner <gmt@be-evil.net>
OOParsing: fix exception names to be generic

Signed-off-by: Gregory M. Turner <gmt@be-evil.net>
OUT: Factor out OpProduction abstract class

This creates a new OpProduction class, and refactors it into subclasses:

  PrefixOpProduction
  InfixOpProduction
  NoopProduction

All work similarly, using tuples.

Signed-off-by: Gregory M. Turner <gmt@be-evil.net>