FormattingWriter: implement preIndent
FormattingWriter: implement preIndent

During an (ultimately failed) attempt to implement preIndent by
emulating it with empty elements around the token in question, I ran
into a _really_ nasty bug (which is part of what took me so long to
implement preIndent) – sometimes, extraneous QueueElements would be
deleted in writeLine(). Although I did not experience this bug without
the emulation attempt, I have included the fix, because I believe that
it is possible that this bug may occur under some other circumstances as
well.

The bug was that sometimes, the elementHandler would already delete the
element from the tokenQueue, which meant that the deleteFirst() at the
beginning of the loop would delete a token that we really still needed
to process.
Fixed by only deleting the first token if it matches the removedToken
that we already recorded at the beginning of the loop.

HenningB/ceylon.formatter