Determinant

Adds logic to matrix expressions determinant class for 

    BlockMatrix, MatMul, Transpose, Inverse

Adds `Q.singular` predicate

Theano printing for determinant