Fix formatting contexts

The visitor now opens and closes some more contexts, and the writer can
properly handle closing contexts that are still on the tokenQueue. Also,
the separate indentStack is rubbish – indentation comes from all tokens
on the tokenStack that haven’t yet been closed.