use macros so that all complex arithmetic can use native complex types if compiler supports them

make sure double/float are replaced by BASE everywhere
well... not _everywhere_; internal accumulations should
be done in double always; there's no reason not too,
it's safer and maybe even faster [GJ]

gbmv_c  :  use conj*imag instead of having branches form Trans & ConjTrans
