getSplatValue(): Make getSplatValue work for scalable vector splats
of the form returned by ConstantVector::getSplat().
getUniqueInteger(): The value returned by getSplatValue() is the same
value that is returned by getAggregateElement(0). No need to have the
second call, and this allows this function to work for scalable splats.
getIndexType() and getCastOpcode(): These can call getElementCount() and
VectorType::get(Type *, VectorType *)
Added test for gep using scalable vector splat
Constant::getUniqueInteger() is a terrible API. I'd prefer to fix the callers so it doesn't need to handle scalable vectors.