Add Erlang support

The standard Erlang style is to indent code inside a block relative to
the token that opens the block.  For example:

    bar(X) ->
      {A, B} = case X of
                 true ->
                   {alpha, [beta,
                            gamma]}
               end.

Thus it is best to ignore the code inside these block constructs when
determining the indent offset.
Merge pull request #9 from dhull/erlang

Add Erlang support
Fix use of benchmark in dtrt-indent-diagnosis

benchmark-elapse is a macro, so benchmark must be required at the top level, not at run-time.
Add support for Lua

Add myself to the copyright list.
Remove obsolete part of comment for dtrt-indent-hook-mapping-list
Show reason for any rejection in dtrt-indent-diagnosis
Add support for js3-mode and json-mode
Add a javascript syntax table to support AMD style
Set overall maximum number of lines to scan.

dtrt-indent-max-relevant-lines becomes dtrt-indent-max-lines, because
otherwise some very large files take a long time to scan; with an
overall maximum, the maximum relevant number is no longer needed.
Fix some skip patterns

Some were \\\\. that is, literally, \\., two backslashes followed by a
character. This is not what was meant, as far as I can see, and was
contradicted by other languages with \\. that is literally, \., which
have the same quoting rule.
Get rid of second-best-guess

This doesn't work well when it is nearly 100% and the best guess is
100%, as no percentage margin will make the best guess win. This is
clearly silly when the best guess is 100%.