Add FFI helpers for matrices in particular, and CFloat/CDouble instances for Element

The way I added the CFloat/CDouble instances was quite ad-hoc, expanding the peculiar type synonyms with kind! in GHCi, and replacing Float with CFloat and Double with CDouble. A nicer solution might be to add a type variable to the type synonyms in question, and import `Ptr a` instead of both `Ptr Double` and `Ptr CDouble`. Also, it seems to me that the current implementation relies on Double and Float's Storable representation to be the same as C double/float, which might be unsafe, but seems to work anyway.