don't do 32-bit shifts on 32-bit values, as it is undefined behavior
Merge pull request #13 from sunfishcode/incoming

Emscripten doesn't need to legalize pointers.
erase more carefully in setjmp lowering
emit bool constants as unsigned in a consistent manner
Handle ConstantPointerNull correctly in more places.
Respect the requested signedness for pointer values.
Use DataLayout to determine type size.

getPrimitiveSizeInBits works on integer types but not on pointer types.
This change makes the code more robust, and will help support the removal
of the pointer lowering pass.

This also requires removing const from some Type pointers. Types are
immutable, so the convention is that const is redundant.
Handle pointer types and ConstantExprs in more places.
Fix a crash when an alloca has no ultimate users.
Don't try to nativize aggregate allocas.
Disable two PNaCl passes which the JSBackend no longer needs.
Preserve alignment information when splitting loads and stores.
Preserve alignment information when promoting integer loads and stores.
Minor code simplification.
Another minor code simplification.