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

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