checkpoint of INDENT/DEDENT work
rename Denter to DenterHelper
add DedentHelperTest, which is small for now
fix off-by-one errors and such
token trickery to ignore blank linkes
rename tokensBuffer to dentsBuffer

The buffer only contains DEDENTs (and, for one edge case, INDENTs).
We can't use it for everything, because the non-NL tokens (from the
fast forwarding feature, to ignore blank lines) need to come _after_
any inserted/buffered dents.

The previous commit also moved the EOF to `nextNonNL`, for consistency
(and to allow this rename) more than anything else.
need to pull from buffer before nextNonNL

Also add some tests
fix test
Do a bit of custom lexing in the test class

Instead of manually adding each space token, have the TokenChecker
do that additional work. It's not too hard, and it results in nicer-
looking tests. But because it's a bit of added complexity, I'm adding
a `.raw(...)` checker function, which acts as a sanity check on the
test itself (no DenterHelper work at that point).
tweaks to the test class

let the Java type checker help ensure we use the class correctly.
fix various off-by-ones and such

"negative" dedents now work
test and fix half-dents, test \r's
actually, opening indents _should_ be emitted
rename method
slight refactoring
don't need unwindToEof anymore

We needed it when we had the "negative" dedent feature, but now that we
don't have that, we can simplify the code.
refactoring
remove nextNonNL
making DenterHelper abstract

This lets us remove the dependency on Supplier, and thus guava.
rename package