TypeEvaluator: Bugfix: Forward broke switching on class

We are now forwarding requests for verb_type to a
TypeEvaluator.  The only problem with this is that
we used the class name in conditional logic.  Thus
the class was no longer returning something that
looked like what was expected.  `inspect`, by
coincidence, returns what we want, but the logic
here really needs some refactoring.  This gets the
branch sans `method_missing` working but there's
some neatening up that needs to happen.
PrincipalPartsExtractor: correct #stem calculation logic

Make calls to stem work whether we have a deponent
or regular form verb.  This also requires some
neatening up.
LatinVerb: Whitespace removal
Extract ImperativesHandler class from LatinVerb

Imperatives are a giant pain.  This logic was
bubbled up but now needs to be bubbled down and
encapsulated.  `LatinVerb` is too big.
LatinVerb: Formatting:  Indentation
Move Method: apply_final_vectors [Latinverb -> TenseMethodApplicator]

Belongs on the TenseMethodApplicator.  `LatinVerb`
is now focused, again.
Extract Module: TriplicateAndPluralizeFormatters

* `pluralize_participial_listing`
* `triplicate_and_pluralize_formatters`
Create class: PresentOnlyChecker

Used to test whether a given `original_string` is
present only (a rare, defective type of verb).
LatinVerb: rename method: evaluate_and_classify -> classify
Classifier:Use a more OO style

Instead of setting an ivar based on a query
launched form `initialize`, let's set some ivars
and then write internal methods which change the
ivars and provide them in teh appropriate
contexts.

Also, make `classify` a public method.
TestFreakishVerbs: Add more helpful contexts for assertions
Remove stray byebug
rm calls to set_as_defective

There was some weird action-at-a-distance going on
with the setting of the classifcation on the verb.
Now classifications are set *once* by the
classifier.

**THE ONLY EXCEPTION** is for irregular,
present-only verbs.  These are a huge, glaring
exception in the language.

Here, the classifier does as expected and returns
that it is an Irregular verb (true) and
consequently the mutator for Irregular is chosen
(correctly).  As part of the `mutate!` function,
the present-only-and-irregular verb has its
classification overridden to be PresentOnly.  The
`PresentOnlyIrregularMask` bears the responsbility
of performing that mutation.

Conflicts:

	lib/latinverb/tense_method_applicator.rb
Classifier: refactor type-check smell

Replace type checking and branching with
polymorphism.
TypeEvaluator: change type returned for deponents

A deponent verb is a **classification** its
**type** should still be something like "First" or
"ThirdIO".
LatinVerbTypeEvaluator: Get the type, not the evaulator
Refactor PrincipalPartsExtractor
Add guard clauses to DeponentStringDeriver
Change key for lookup calculation
migrate stem calculation out of prin parts extractor