Arbitrary bitvector-to-bitvector conversion. Either truncates or zero-extends depending on the
relative sizes of T and U. Both T and U must be represented as bitvectors (BVType)
at the Crucible level, which is the case for both Bv and primitive integer types. (Note that
this still zero-extends when used on signed integers: convert::<i8, i16>(-1) return 255,
not -1.)