foundation for complex numbers

- Parsing and code generation stuff: added `AST_Num::COMPLEX` and a `ConcreteCompilerType`, `BOXED_COMPLEX`
- Created `BoxedClass *complex_cls`
- Addition, subtraction, and multiplication for complex numbers on the lhs
are the complex constants we'll find here always have a real part of zero?  if so, maybe we should add an assert just to document that?