Makefile simplification - no more -DTEST
We can build a static lib, optionally optimised.
Version numbering and version IDs.

We have defined the a format for version ID strings and provide the
compiletime ELM_VERSION and run-time elm_version() which can query the
current elm version.  In any given build these two things will be the
same string, but dynamic linking could change that.

We even have a unit test to sanity check that the version string is
valid.
n0run executes files in TEST_DIR

If the environment TEST_DIR is defined, n0run will run the test inside
this directory.  The test program should also be found inside TEST_DIR.
Makefile allows a seperate BUILD_DIR

All generated files (.o, .a, executables, whatever) are now in
BUILD_DIR.  By default this is '.' The unit tests also use this as their
working directory.
Make install

Copies the library and headers to a unix-shaped tree under the
environment variable INSTALL_DIR.  If this is not defined, BUILD_DIR is
used.  I think elm0 should be part of the source tree of applications.

If those apps put the elm0 source in elm0/, they can do things
like:

        BUILD_DIR=../relative/build/path -C elm0/ install
BUGFIX: libelm.a not elm.a
Fixed comments about versions
.gitignore is back
chkrel.sh -- checks that we are ready for release.

Run this script from OUTSIDE the source repository with the command:

        REPO/chkrel.sh REPO VERSION_NUM

(e.g.   elm0/chkrel.sh elm0  0.5).

This checks that:
* Checks that your working directory is clean.
* Clones the repository, checking out
        rel/VERSION_NUM
* Checks that the unit tests pass
* Does a "make install" into a temporary directory.
* In that directory, it builds and runs the unit tests
  again.
* Then it checks that the version information
  compiled into the library is as expected.

The oddity here isthat it checks your working directory, but does not
use it.  Indeed it can check out some completely different branch.
chkrel now insists on using the work directory.

That is, it insists that the work directory contain the branch we are
intersted in make a dist of.  The '-b' option allows you to disable
this check and also the work-dir-is-clean check.
chkrel.sh now has an explanatory comment at the top.
chkrel.sh: Removed mysterious "exit"
"make test", not "make run".

Istanbul, not Constantinople.
Example.c is a 0unit example.
ISC LICENSE and header blocks.

Added the file LICENSE.   This is a permissive license used nowadays by
*BSD.  I have added a copyright notice in all files, it just points to
the LICENSE file.  While I was at it, I tired to give each file an
informative header block.
Added a README -- just read it.
Setting version to elm0-0.5.
Merge branch 'rel/0.5'

That release branch was a giant tidy-up to get elm into a position
where it deserves a version number.  Many changes were made:

* We are licensed under the ISC license, see file LICENSE.

* We have a README, read it.

* Various other improvements to the build system, in particular
  we can build a stitic lib, with tunable optimisation.

* elm.h and libelm.a know their version number.  There is a clever
  scheme for lexicographically compariable version string.

* There is a 'make install'

* Seperate BUILD_DIR and INSTALL_DIR, but they default to '.'

* chkrel.sh can be run from outside the repo.  It checks
  out the repose and tests all kinds of things.

* 0example.c is a 0unit example.