Merge Laurie's immut cache change from pypy_bridge branch.

Original commit message:

Alter the immutable cache class so it returns None instead of raising KeyError.

This allows code that is searching for something that it doesn't hugely expect
to find to become much more JIT friendly. On Richards, this leads to a 1/3 speed
increase. This does touch a lot of the code-base, so there is a small chance
that it negatively effects something.

Conflicts:
	hippy/interpreter.py
	hippy/module/pypy_bridge/scopes.py
Correct my failed merge.
Fix use of the new immutable cache API.
Add versioning to the immutable cache.

There is an edge case where at one point a (say) constant doesn't exist in the
cache, but does later. If get_cell is naively elidable, then if the cell doesn't
exist when the tracer first encounters it, it will never be pcked up
subsequently.
Mark immut_cache version as semi-immutable.
Merge branch 'master' into immut_cache_opt
Whitespace
Add a few more immutable cache tests.
Merge pull request #61 from hippyvm/immut_cache_opt

Optimise immut cache for cache misses.