Functor wrappers for functions

The basic idea behind this file is to automate the type selection for BLAS level 3 functions.
Instead of calling dgemm, zgemm, cgemm, sgemm, you call gemm<type>() and it should
select the appropriate function for you.