[WIP] Add a LevelDB cache backend

The great part about LevelDB is its resilience to crashes, I killed the process multiple times while it was putting keys and the db never corrupted.

the not so good part is that installing python-leveldb from pypi is not a just-works experience, you have to install  `ez_setup` first. And the version in pypi is outdated compared to https://code.google.com/p/py-leveldb/

fix #500