First crack at cuda support.  Minimal cublasDgemm code created.

System is a literal copy of fortran code generation, with some
changes, of course.  Big differences are n-arrays a single
pointers and the need to copy to/from device memory.

The different type declarations are just a pain.  We need
to decide how to handle complex types, which C doesn't natively
support.  CUDA headers come with a complex type, which is probably
easiest.

Right now, I've decided to copy all the inputs (outputs) to (from)
the GPU at the start (end) of the function.  This is simple, but
slow in practice.  In the future, we probably want to add copy
boxes a la MPI, but there is some abstraction-mixing there
that I don't love...

Next: get this code running in python for testing.  Then: more
functionality.