'import' directive syntax and load() behavior corrected

Previously, the 'import' directive would accept only quoted
names, and there was no way to determine whether these were
to be interpreted as paths or module names, whether it was
desired to reuse already loaded share modules, or if loaded
modules were intended to be shared. The underlyng load()
function had the same problems, of course.

Most critically, this prevented modules that had to be
addressed by a path (such as "eelium/text") from being shared
(the name of the aforementioned module would be 'text'), and
that would result in these modules being reloaded every time
they were imported, as they could not be found by name.

Now, load() supports two new flags; EEL_SF_SHARED, which
indicates that a module is to be shared, provided it contains
a 'module' directive to give it a name, and EEL_SF_ALLOWSHARED,
which indicates that the provided name is to be interpreted as
a dotted module name, and that the caller is willing to reuse
an already loaded instance of the module, if there is one.

The 'import' directive now supports both quoted paths, and
dotted names.

A quoted path is interpreted as a full or partial file path,
with or without file extension, and shared modules will NOT be
considered.

A dotted name (such as eelium.text instead of "eelium/text")
is interpreted as a module name, and will have the
EEL_SF_SHARED and EEL_SF_ALLOWSHARED passed to load(),
indicating that already loaded shared (named) modules should
be considered first. If no module is found, the name is
converted into a path, and an attempt is made at locating and
loading it.

The compiler will warn if a module is imported by dotted name,
and that name doesn't match the one specified by the module's
'module' directive, suggesting that the module is either
installed in the wrong location, or misnamed.

The 'import' directive parsing code was refactored into a
proper 'importstat' rule, that handles lists of dotted names
and quoted paths, with or without namespace specifications.

Some unused return values and tokens were removed from the
parser in the process.

All examples and distributed modules have been updated to use
the new dotted names syntax where applicable - that is, in
most cases.

NOTE: It is no longer possible to import builtin native
      modules using the quoted path syntax, as these modules
      will only ever be found through the shared module
      table, which is only considered when using the dotted
      name syntax.

Closes #42.
Added curvetool.eel

Added curvetool.eel, a simple graphing calculator application
using EBGUI for the user interface, and the EEL compiler and
VM to compile and evaluate expressions at run time.

This application also demonstrates how to add custom widgets
to EBGUI, and how to apply a custom color theme.