Refactor of IPython support code from core functionality

The core code and IPython support code is now refactored into separate
modules. The job of the __init__.py file is to select the code path: the
core module when IPython is not available, otherwise the module with
extra IPython support is loaded.

To explicitly use the non-IPython version, use:
	import lancet.core as lancet
Fix for IPython support of argument specifier composition

Added lancet._module attribute that points to the appropriate
implementation (lancet.core or lancet.ipython). This allows normal
argument specifier composition to operate correctly.