Initial 32bit support

This adds initial support for targeting 32bit platforms. Currently on Ubuntu
14.04 on i686 has been tested. There are no attempts made to take advantage of
the extra space 32bit pointers leave in GC cells. Due to the waning importance
of 32bit platforms that and other 32bit-specific optimisation are unlikely to
happen.

This passes all unit tests except for LargeProgramSuite which runs out of
stack space on a 32bit JVM. This is likely a code quality issue that's simply
hidden by the larger stack on 64bit.