WIP: Try to add SI add i64
Fix assertion failure when ptrtoint int size is larger

When the int was larger than the pointer size, the saved constant
offset would be the wrong type at the uses, resulting in this failure.

In the added test case for example, the sub i64 ended up with
i32 operands, which would then fail on its use in the icmp.
Fix spacing
Add braces
Add address space assertion to getCastOpcode
Spacing around operators
Irrelevant formatting change
Check address space in isCastable because why not
Add address space assertions in CreatePointerCast
Add tests that will hit CreatePointerCast assertion in one place
Disable CreatePointerCast assertion
Teach InlineCost about address spaces
Use correct size for address space in BasicAA.

The tests just hit this with a different sized
address space since I haven't figured out how
to use this to break it.
XXX - Use helper in datalayout
Add getMaxPtrSizeIntTy
Add a function to get the largest address space pointer size

Some users of DataLayout::getPointerSize don't use it in an exact way,
and aren't really using it for the pointer size. For example
MemCpyOptimizer uses it as a guess for the maximum GPR width.
Teach lint about address spaces
Fix lint with address spaces
Fix SROA creating invalid bitcasts between address spaces
Correct GEP index for address space in SROA