Added basic functionality for complex numbers

Set up basic operations (+,-,*,/,==) between Complex and Number types, added polar coordinates (phase and abs), included specs. This covers the basics, I will add more functions in the near future.
In cases where in Ruby a method returns an array of a fixed length we prefer, in Crystal, to return a tuple:

```ruby
def polar
  {abs, phase}
end
```

and:

```ruby
Complex.new(7.25, -13.1).polar.should eq({14.972391258579906, -1.0653196179316864})
```

The advantage of tuples is that they are allocated on the stack, are immutable, and if you index them with a constant you will get an index out of bounds at compile time (and I guess LLVM can better optimize things).