utility function to show filter context
make period ending trait first class.

this should make clear where periods should be stripped and where not.
add todo about correcting ortho
add util func to check initial
classify initials with collocation heuristic
switch is_initial to work on tokens
correctly classify after-enders

for both freqstart and ortho, strunk 2003 advises to only count definite
sentences enders (as classified by the type-based stage) that are not possibly
initials.
sequester punctuation into its own ADT ctor.

this effectively removes punct from log likelihood calcs
ignore non-words (puncts, ellipses) in total
fix the still-unfixed ortho bug

there are in fact not two but three different positional types in a
type-classified token stream: sentence internal, sentence first, and
post-abbreviations. the first and third need to be distinguished because
strunk's ortho and freqstart specifically disregard the third (from section
4.1.1):

The Orthographic Heuristic...Punkt does not count tokens occurring after an
abbreviation or an ellipsis, because we have not yet determined whether they
start a new sentence or not. The algorithm also ignores tokens that occur after
possible initials and numbers...
bug: initials were sentended by ortho/freqstart

section 4.3:

The system never reclassifies a period following a possible initial as a
sentence boundary marker because we assume that if a single letter is indeed not
used as an abbreviation but, for example, as a mathematical symbol or if it is
an ordinary word, there will usually be enough occurrences of this type without
a final period so that the type-based stage will classify all periods following
instances of the type in question as sentence boundary periods.
glob of diffs involving test improvement
what is with all these careless bugs

error rates:
punkt = (611.0,123.0,61128.0) = 1.1865119136141735%
control = (4771.0,0.0,61252.0) = 7.226269633309604%
refactor initial classification based on ortho
refactor init. class into token-based classifunc
reorganize code placement
refactor orthographics heuristic
simplification
use Map.adjust
use hashmap.strict for speed boost