transposed matrix coerced to the input matrix type

Bug example:
```Clojure
user=> (def m (matrix :clatrix [[1 2 3]
  #_=>                          [4 5 6]
  #_=>                          [7 8 9]]))
#'user/m
user=> m
 A 3x3 matrix
 -------------
 1.00e+00  2.00e+00  3.00e+00
 4.00e+00  5.00e+00  6.00e+00
 7.00e+00  8.00e+00  9.00e+00
user=> (transpose m)
[[1.0 4.0 7.0] [2.0 5.0 8.0] [3.0 6.0 9.0]]
```