LatinVerb: provide attr_reader on verb_type
TenseDefinitions:First: Shorten constant reference

Use a less fully-qualified name for ease of
readability.
ImperativeBlock: Bases calc should change for deponents

Deponents should have their imperative base
calculated differently than we do for
non-deponents.
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

Belongs on the TenseMethodApplicator.  `LatinVerb`
is now focused, again.
Move methods pluralize_participial_listing, triplicate_and_pluralize_formatters
Add a PresentOnlyChecker
evaluate_and_classify -> classify
Formatting
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.
Add assertion context
classifier: rm comments: lies waiting to happen
classifier: shorten constant pathing; rm memoization

1.  Remove the `@classification` field, just
recalculate.  It's not heavy duty lifting
2.  Simplify the constant pathing.  We need fewer
constants to get a unique match, let's save some
line width

ALSO:m rm stray comment
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
rm stray byebug; tweak error formatting
LatinVerbClassifier#classification: refactor pseudo-case statement smell

Replace type checking and branching with
polymorphism.