Store the used element type in the InductionDescriptor. For typed pointers, it remains the pointer element type. For opaque pointers, we always use an i8 element type, such that the step is a simple offset.
A previous version of this patch instead tried to guess the element type from the induction GEP, but this is not reliable, as the GEP may be hidden (see @both in iv_outside_user.ll).
add TODO that this will no longer be necessary after opaque pointers