ledger-mode: define and use a syntax table so that comments are handled properly

Specifically, functionality which uses syntax-ppss to detect comments
needs the syntax table to be aware of them. A prime example is
goto-address-prog-mode.

This commit adds a basic syntax table for this purpose.
Merge pull request #220 from purcell/ledger-mode-syntax-table

ledger-mode: define and use a syntax table so that comments are handled properly
ledger-mode: declare keymaps at the top level
Merge pull request #221 from purcell/top-level-keymaps

ledger-mode: declare keymaps at the top level
ledger-mode: Use easymenu to remove boilerplate

Among other benefits, this lets us define the menu entries from top to
bottom, rather than in reverse.
ledger-mode: Add namespace prefix to highlight-overlay

make-variable-buffer-local is a top-level form: this commit moves that
call from ledger-mode to next to the variable's declaration.
ledger-mode: Remove duplication in ledger-set-{year,month}
ledger-mode: Add missing argument to ledger-delete-current-transaction
ledger-mode: Fix a number of byte-compilation warnings
Don't default fill-column to 8 in Emacs
ledger-mode: Also bind g to ledger-report-redo, as is standard elsewhere
Pop the new schedule buffers
ledger-schedule-upcoming take argument.

One can forget to run ledger-schedule-upcoming for some time. Then there
is the risk that ledger-schedule-look-backward is too short. This will
open the possibility to use a different file, or to change the period
backward or forward for this kind of case.
Merge pull request #223 from vanicat/t/schedule-with-args

I should have done this a long time ago, but I got too lazy.  Thanks Remi!
remove contrib/vim and point to new location