Compile dialect modules to dynamic modules

Previously, dialect modules had to be compiled manually with the
--dynamic-module flag before use. Now, they will automatically be
compiled in the right way when required, like other modules are.
Compile nested dialects automatically as well

The previous commit built dynamic modules for first-level dialects, but
not dialects used by the first-level dialect. Build them as well.
Rebuild nested dialects when changed

While nested dialects were built, they would not be rebuilt if they
changed. Now, the compiler will track the dialect used in the .gct file
and recursively check whether they are newer than the corresponding
.grace file, rebuilding if required.
Bump minor version to 0.0.9
Bump known-good

This commit also updates the compilation script for known-good versions
to take account of the new configurable search paths.
Remove catch-case uses from compiler

The catch-case statement is deprecated and will be removed. These
statements are replaced with the new try-catch statement.
Warn when catch-case statement used

catch-case will be removed from the compiler soon. Print a warning when
parsing code that uses it advising the user to replace it with try-catch.
Suggest case->catch for *"try-case" statement

During the transition from catch-case to try-catch it is likely some
"case"s will be missed. Give a specific error and a suggestion for this
situation.
Make tarball Makefile update buildinfo.grace

The new search paths are set in Makefile.conf during configure, but must
be transferred to buildinfo.grace to be used by the compiler. The
tarball's makefile did not make this transfer and so the `make install`
target would misbehave. Update the buildinfo.grace file each time the
configuration changes.
Compute version afresh when making tarball

Previously, `make tarball` relied on the --version output from minigrace
to name the tarball. Now, use the tools/calculate-version script
instead.
Forcibly validate commit messages

After this commit a hook will be enabled that enforces good
commit-message practices. It is enabled by the default target of the
Makefile and will reject any commits that do not meet the requirements.
Update copyright year

The years printed by the compiler run with no arguments and in response
to minigrace.warranty were out of date, but will now include 2014.
Add new known-good to default generations cache

The version number is based on the generation of the commit built, which
is calculated during make. The generations.dat file notes several
revisions to short-circuit this calculation, and some versions are
included in git-calculate-generation directly for the use of systems
(notably Mac OS X) with old versions of bash.

This commit adds the current known-good version, generation 1926, to
both files as the previous included version was nearly 300 generations
ago and approaching the area where problems start to occur.
Include formal name aliases for control characters

The unicodedata files contained no names for the C0 and C1 control
characters, which was particularly a problem for the common ones that
may appear in errors, like U+0009 HORIZONTAL TAB. This commit extends
the generation scripts for both C and JavaScript Unicode data to present
the formal name aliases for these characters instead of "<CONTROL>".
Regenerate unicodedata files

The previous commit extended the unicodedata generation scripts to
include control character formal aliases. This commit updates the
unicodedata files using these scripts, and also the newer Unicode 6.3
data files.
Add NameAliases.txt to .gitignore

NameAliases.txt is one of the Unicode Character Database files like
UnicodeData.txt, which is already ignored.
Merge branch 'master' of https://github.com/mwh/minigrace