lambda-term: first initial version

It does not work well yet because I need to use lambda-term's
LTerm.fprint* to print out my messages so right now the output comes out
all garbled.

Also, need to add completion for procedures, and colors.
Introduce a flexible input/output system

This will allow to implement all of 3.3 File Access.  Also, in
particular, this allows to redirect output to a *buffer*, which can then
be output using lambda-term's own output functions, which is necessary
in order not to get garbled output.
lexer: fix handling of empty lines
Comm: fix 'show' to print newline at the end
Repl: handle output without ending newline

In this case we print a '~' and a newline.  It is not possible to just
leave it because the lambda-term prompt will erase everything in the
line, including the non-newline-terminated output, so commands like
'type' often end up producing no output.
repl: add prompt color
repl: add completion of procedures
repl: add history
repl: more robust control flow handling
repl: improved completion
Merge pull request #7 from nojb/lambda-term

Add lambda-term command line interface