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