Avoid slow container-offset lookups in tight loops

PositionIterator.unfilteredDomOffset contains logic that will
report a position relative to the container if the offset is 0.
For an element with a large number of previous siblings (e.g., a
top level paragraph at the bottom of a document), this results in
a lot of time spend counting backwards.

StepsTranslator is really only using this value internally to either
update it's own cache, or check equivalents with a destination point.
It is much faster to use the node offset directly in this case.

This change halves the time taken to move the cursor to the end of
the document on the 1000pages.odt benchmark.
Setup for KJB fixes
Move per-node checks out of the position filter into the node filter
WIP downgrade a sequence of spaces
WIP delay UI drawing operations as long as possible