fixed an inconsistent extern template declaration
consider different types of types separately in vmc-supported-types.hpp
removed VMC_REAL_T and VMC_AMPLITUDE_T macros, now that we can instead use templates
make complex_pow() work with a greater variety of types