Use data layout attributes for index bit widths.
Use data layout attributes for index bit widths.

This fixes an issue in our code where we use too wide indices, and also works
around a bug in LLVM's separate-const-offset-from-gep pass, which produces
incorrect results in the presence of truncations. After this change, we will
use the same bit width for GEPs as for other indices, so there will never be
any truncs.
