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.
Merge branch 'master' into better-class-defs

Conflicts:
	hippy/module/reflections/parameter.py
Merge pull request #62 from hippyvm/better-class-defs

Make it easier to create methods on builtin classes.
Rename PHPException to Throw

'PHPException' was ambiguous since it suggested that the object was
a wrapped PHP exception. 'Throw' indicates its status as the
implementation of the control flow jump that occurs when 'throw ...'
is executed.
Create Interpreter.throw()
Add interp.call_method()

This simplifies a common pattern:
   interp.getmeth(w_obj, 'method').call_args(interp, [w_arg])
becomes
   interp.call_method(w_obj, 'method', [w_arg])
in which the app-level call $obj->method($arg) is more easily visible.
fix
Merge pull request #63 from rlamy/easyOO

Easy oo
Merge branch 'master' into spl-iterators