VerbType subclasses: rm class methods

Instead of having these options be invoked
polymorphically by calling these messages on these
classes, implement factories that encapsulate this
decision.  The will be introduced in the following
commits.
Add PassiveInfinitiveVactory: calculate present_passive_infinitive
Add ImperativeRuleFactory: factory for calculating imperative base
MutatorForVerbType: rm constantize magic, prefer clear Hash
VerbType.ordinal_name_key: add method

Allows removal of a lot of boilerplate `split`
noise.  Change lookups to conform to the name
generated by this one method.
rm const_get usage: MutatorForClassificationFactory

I've decided to remove all lookup magic in line
with taking out all the `method_missing`.  While
the use of `const_get` wasn't too hard to reason
about, I want to try to be explicit wherever
possible.

This required moving some `require` statements
about and was helped along by adding in some short
lookup methods e.g. `short_name_key`.
cleanup todos list
Restore byebug
MutatorForVerbType: do not use `extend` to add functionality

In the original implementation of `LatinVerb`, we
used modules to extend the base `LatinVerb` in order
to gain gain the various `Ten`seBlocks'
functionality.

In the case of Irregular verbs this wound up
looking super crazy because it required the use of
the callback hook `self.extended`.  It is far
preferable to explicitly add functionality (via
`instance_eval`) than rely on this hook method
"magic."
rm weird formatter instance in two TenseStrategy subclasses

I was in a hurry when I made those base Objects
extend the mixin.  Not needed, weird, etc.  Now
it's gone.