Create a generic matrix and its tools capable of supporting any built-in numeric type.
NOTE (BITWISE OPERATIONS) The Bitwise operations do not work with floating-point numbers. There are a lot of reasons for this...mostly due to how float32 and float64 are stored in memory.