Abstraction for imaginary numbers

Signed-off-by: Aleksi Sapon <QcTechs@gmail.com>