Added complex arithmetic contracts.

@bsoetaer 
Yeah, the resulting matrix is real, but contains the imaginary part of the input matrix.  This is analogous to the behaviour of the `Complex` class.
```ruby
Complex.rect(1, 2).imag # => outputs 2, not 2i
```