lua-font-lock-keywords: fontify constants/builtins first

Move constant/builtin fontification rules to the beginning so that they
have more priority than regular rules and can only be explicitly
overridden.
Add helper functions for reimplementation of font-lock-keywords
Major refactoring of font-lock-keywords:

- add highlighting of local var assignments with multiple variables
  local x,y,z = ...

- simple on-fly syntax check in local var assignments
  local 00xyz, foo, bar,, baz bux = ....
        ^^              ^     ^^^
        these are syntax errors and will be highlighted

- faster and more precise function name matching

- fix docstring; it was inside (eval-when-compile ...) block and hence
  considered one of the font-lock rules :)
Add var name highlighting in "for x,y in ..." construct
Improve local var assignment matching

- make sure == is a syntax error
- make sure names are matched on symbol boundaries
Add field containing commit SHA expanded during archive creation.
Bump copyright information (no luck with FSF), rephrase comment
Wrap symbols required during compilation into (eval-when compile ...)

lua-local-defun-regexp & lua-make-delimited-matcher are needed for
lua-font-lock-keywords initialization.
lua--builtins: add "self" as keyword
Restore compatibility with Emacs23 broken by commit 8d28342

`rx' macro had its `group-n' form introduced only in Emacs 24.2
lua-font-lock-keywords: don't eval-when-compile initial value

It seems to cause issues with lexical-let & byte-compilation.
Improve multiline highlighting via font-lock-syntactic-keywords

This improvement means that:
- there's no delay before multiline literals are recognized
- fontification can be controlled in detail via font-lock setup
- syntactic properties are always as up-to-date as possible

Basically, it's the same refactoring as in dbedb1e, but backported to
support Emacs23.  Emacs24 version is faster though, because font-lock
updates buffer line-by-line while `syntax-propertize' does that in
blocks of 500 characters.
Clean up lua-mode start-up function a bit
Fix incorrect error highlighting in 'for x = ...' statements
Print 'Prefix key set to ...' only when setting via interactive function
Don't unindent comment close-bracket if it doesn't match open-bracket
Bump TODO
for/local varname highlighting: match '=' at EOL properly
Post-refactoring fix: evaluate string variables in font-lock-defaults value

Should fix issue #53.
Fix left-shifter regexp to match function parameter block parens

This is for situations like the following:
   x = function xyz(
      x,
      y,
      z
   )
   ^
   this parenthesis is better here, than aligned with its mate