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.
Fixed issue #47 and normalized respect to PHP the errors raised
Added missing space
Replaced type with __class__.__name__ to fix translation and removes extra comma
Fixed path of skipped test and replaced the wrongly typed __main__ with __name__
Unroll this guy
git pushMerge branch 'master' of github.com:hippyvm/hippyvm
Fixed issue #56
Replaced slice with single chars calls
Caught the right exception
Add OuterIterator interface
Create stub for IteratorIterator
implement all IteratorIterator methods in the simple case
create AppendIterator
Checked if characters are valid hex instead of trying to catch the exception (which is invalid). Bonus: applied same refactoring to quoted_printable_decode
Merge
Added tests for the new ParseError messages