Start implementing parallel resolve

This commit adds a dependency on gevent and adds an execution
monitor. This is used to run expand/resolve operations in
their own greenlets.

If 2 greenlets both request the same resource it will only be
resolved once. They will both be suspended until it is ready.

Paradox and cycle detection is handled by the monitor.
self.root can return None - make sure we notice
Add a test to verify can peek into a python class without making it resolve
Don't apply() a node unless something needs to get_key it
Cope with nested dict PythonClass params
Move docs to right location
Resolve keys of a map in parallel
Fix Streamish iteration
Wait for self.apply - this allows automatic multiplexing
Remove Node.dynamic() and Node.simplify().
Resolve keys before commencing parallel resolve - avoids LoopExit
Make sure we don't try to call uncallables
Add test so #12 stays closed
Test that we get a TypeError when calling dicts
Merge pull request #13 from yaybu/waits

Add a gevent based resolving process