Get rid of the import hack.  Use relative and "deferred" imports.  Fixes #160.

Here is my try to fix #160.  It requires another hack, but it is cleaner because it just uses attribute assignment.  Basically I rewrote `import X` in module `Y` to `from jedi import X, Y; Y.X = X` in `jedi/__init__.py`.  To do this in more DRY manner, I add another module called `jedi.deferredimport` which automates this procedure.

This change also clarify circular imports in jedi.  It is useful to have them in mind and better try to reduce them.