Added the initial matrix contracts file with a sample pre- and postcondion

@bsoetaer 
Actually this is not a postcondition so much as it is what the diagonal? function will check itself. If diagonal? returns false due to a non-diagonal matrix then this postcondition will fail and that is not good because the function did what it was supposed to do and did not necessarily break anything.
The only valid post condition I can see is that the matrix was not alterred by the function.