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.
Fix translation: ensure that RFile.write() is never called with None
Do not read e.__class__ as it causes -Ojit translation to fail

(this was broken since PR #54)

The reason for the failure is deep RPython nonsense:
The JIT defines a JitException which subclasses Exception and is only seen
during the JIT translation phase. This triggers a call
to rpython.annotator.classdef.ClassDef.see_new_subclass, which attempts
to reflow main() because it accesses <Exception>.__class__,
which fails because main() has already been rtyped at
this point.
Don't drop into Pdb+ in Travis translation run
Use a local 'rpath' module

nstead of adding to rpython.rlib.rpath these functions which are
not tested, not used by PyPy, and more importantly which don't work
correctly on Windows.
Merge branch 'master' of github.com:hippyvm/hippyvm

Conflicts:
	hippy/bytecode_cache.py
Fix
fix translation
Merge pull request #61 from hippyvm/immut_cache_opt

Optimise immut cache for cache misses.
Merge branch 'master' into better-class-defs

Conflicts:
	hippy/module/reflections/parameter.py