Adding custom complex class.

We believe that the need to conform with IEEE and ISO standards slows
the std::complex<double> class down somewhat. This can be cured by
using the -ffast-math flag when compiling or using a custom complex
class. To prove the point, I implemented one. Here it is...
Adding multiplication expression template.
Added expression templates for all multiplications.
Disable expression templates by default.