Apply vector.type_cast to multi-dim memref<a... x b x T> where T is a
scalar type and b is not a power of 2 can produce MLIR vectors that will
be translated to a non-aligned aggregated LLVM vectors in memory. This
can cause confusing behaviors when accessing the element of the vector.
This commit adds checking for such cases and forbid them.