Add cofactor and first_minor method for the Matrix class

The cofactor is  very useful and important operation.

```ruby:
# a is object of Matrix class

# Determinant
a[0,0] * a.cofactor(0,0) + a[0,1] * a.cofactor(0,1) .. 

#Matrix of cofactors
c = Matrix.new([a.cofactor(0,0), a.cofactor(0,1)..], [a.cofactor(1,0)..

# Inverse of a matrix
c.transpose/a.determinant
```

It help us to think general definition(it means m * n matrix) of determinant, inverse, and other.