Added complex arithmetic contracts.

@bsoetaer 
Come again? You are saying that the result matrix has elements that are real but contain the imaginary i? That seems like not right behaviour. Are you just using the Matrix library code and including the matrix contract into it?