Various fixes and improvements

* Use standard header/footer lines for compatibility with package.el
* Include auto-mode-alist entry by default
* Use a proper mode definition rather than a plain function
* Support comments via the syntax table, not font lock keywords
* Use define-abbrev-table where appropriate
* Specify keywords more concisely, and pass "case-fold" flag with font-lock defaults to allow case insensitivity