Refactor - put compiler interface in separate module.

Unified duplicate parser state

Cleaned up imports

path.py is back as a dep since IPython's version is too old.