Optimize mat.inversed() by removing indirections

With dmd, it's *much* faster now. With ldc, only very little.
Split mat.determinant() off of mat.inversed()
Add mat.invertible()
Clean up mat.invertible()
Add comment for mat.determinant()