No more ImaginaryUnit: `const im = Complex(false,true)`.

This change requires giving multiplition by Bools special behavior.
Approximately, `true * x = x` and `false * x = zero(x)`, but a bit
complicated for the sake of promotion, the only non-trivial example
of which is `Bool * MathConst`, which is promoted to Float64.

Idea originally due to @GunnarFarneback:

    https://groups.google.com/forum/#!topic/julia-dev/VkGrqnrAdaY
    https://github.com/JuliaLang/julia/issues/2980
    https://github.com/JuliaLang/julia/issues/3728