DefaultOpMatcherService: tweak style
Move assignInputs to OpMatcherService

This change will avoid a circular dependency later.
DefaultOpMatcherService: reorder helper methods
Simplify op matching logic

This removes the OpMatcher layer in favor of having the match method
directly in the OpMatcherService.
Rename OpMatcherService to OpMatchingService

This also changes the name of the DefaultOpService's OpMatchingService
to "matcher" since it reads a bit more intuitively.
Op: add some initial javadoc
Add interface for op optimizers
Let the OpMatchingService manage the Optimizers
Optimizer: extend RichPlugin

This makes it easier to query the optimizer priority later.
OpMatchingService: add optimize method
DefaultOpMatchingService: optimize the match!
Merge branch 'better-op-matching'

This branch adds a new Optimizer mechanism, so that we can do cool
things like apply Javassist on the fly to our ops, accelerating their
performance as much as possible in various special cases.