Use font-lock-preprocessor-face as the basis for directive faces
[emacs] When the first line is a txn, include it in ledger-sort-buffer

Without this fix, ledger-sort-region tends to skip the first
transaction when sorting a region or the entire buffer.
[emacs] Use markers instead of raw positions to make cleaning work better

Sometimes cleaning a buffer would leave the end of the buffer uncleaned,
because the end position would be moved along the way. This commit makes
the corresponding code use markers instead, which track the changes in
the buffer, and therefore ensure that the entire buffer is acted upon.
[emacs] Parse transaction leading lines more robustly

This began with noticing that the code didn't support the (ugly, yet
valid) case of a tab between the date and txn description. I took the
opportunity to make the regexes more consistent along the way.
[emacs] Set comment-start to ";" so that comment-dwim works