Include <unistd.h> to define unlink().

  Weird how this wasn't previously necessary.
  ctrl-a + ctrl-e work for prompt() input.

  Still need to have TAB-completion though.
  Trivial completion of primitives.

  This will show tab-completion of the first term against the
 primitives we define.  It's ropey because it:

  * Duplicates the list of primitives.
  * Only works on the first time.
  * Doesn't handle ambiguity

  Updates issue 47.
  Move the tab-expansion code into its own function.

  This paves the way for further updates.

  Updates issue #47
  Move the Lua-definitions into an externally visible array.

  We've now moved the bindings for lua from a series of hard-wired
 calls to lua_register to using a table.  This table is externally
 visible, which means our TAB-completion code can complete on
 function-names without a second copy of the function-names.

  This is part of issue #47.
  Use the external table of lua-to-C mappings for completion.

  This means we don't need to duplicate our function-names.

  This is part of issue #47.
  Implemented function to call the on_complete callback.

  This will be invoked when completion is called.

  This is part if ossue #47.
  Added prototype for completion hook invoker.

  Part of issue #47.
  Implemented TAB-completion for functions.

  The completion handles both built-in primitives we support,
 and user-defined functions via the on_complete function:

        http://lumail.org/lua/on_complete.html

  The completion is also updated to work on all "tokens", whereas
 before it just worked on the first word of the input.

  This update and almost completes issue #47.

  TODO: filename/dirname completion.
  Added a default completion routine.
  TAB-completion of filenames works.

  This closes #47 / fixes #47.
  Compile with lua5.2.

  This fixes #48 / closes #48.
 Make it easier to build against lua5.1 / lua5.2
  Show the Lua version we were compiled against.

  This will be useful for bug reports.