Many changes:
Now encapsulate everything in a module so as to avoid polluting the csi
namespace unnecessarily.
The -enter and -exit functions should now behave as expected.
compile-file now has a hack to avoid compiling in the current module.
eval will now ignore the current module if it detects a module
definition in the form.
An interim commit.
A whole lot of refactoring to get modules working correctly.
Better attempt at switching modules.
There's still an issue with nested modules when csi is in scope; but I
believe that is cogent behaviour.
Now capture all values
Shouldn't have submitted this debug code.
Not all results were properly captured.
Module switching now works.
Better completion matching, wraps sys functions.
Minor utility cleanup.