Refactoring: Use an Evaluator class.

Add an `Evaluator` class that makes Jedi thread safe and removes circular imports.

Intended Side Effects:

- improve readability of the hard parts of Jedi.
- remove a lot of hacks that are used to make caching possible (and cache deletion).
- evaluate is now a package that contains everything that is necessary for evaluation.

This is work in progress. I put it here so that people editing the Jedi core (almost everything else than the parser) are prepared to face huge merge conflicts :-)

fixes #184, #160.

This is the longest and most complicated standing Jedi issue.