We did.  transpose, adjoint, and conjugate all live somewhere in the core already.  Previously we used those names and relied on them to call into `_eval_transpose`, `_eval_adjoint`, `_eval_conjugate`

In the event that an object doesn't have these though I wanted `transpose` to know to use MatrixExpr `Transpose` so I made a matrix specific version of `transpose` instead of relying on the function in core.