Complex Module (Resolves #47)

I've implemented some basic functions:
Stuff yet to be implemented:
- [x]  add
- [x]  sub
- [x] mul
- [ ] div
- [ ] pow
- [x] is_zero
- [x] is_one

`compare`/`is_positive`/`is_negative` cannot be implemented as complex numbers cannot be totally ordered

if `imaginary` is in canonical form, denominator is always positive, take a look here:
https://gmplib.org/manual/Rational-Number-Functions.html#Rational-Number-Functions