Added struct Formatter and changed most formatter functions to use it.

Moved formatting related fields from struct Lexer to struct Formatter.
Renamed most formatting functions to follow the formatterXXX() pattern and
changed the first argument to struct Formatter * instead of struct Lexer *.
Changed signature of emitBackspacedLetters() to use bool instead of int.

Also reformatted the code and renamed some parameters.
Moved emitBackspacedLetters() and emitBackspacedText() into Lexer.c.

Renamed them decodeBackspacedCharacterPair() and decodeBackspacedText()
respectively.
Renamed formatterEmitRaw() to formatterEmitMarkup().

Re-ordered some functions in Formatter.h/.c.
Changed lexerDestroy() to call formatterDestroy().