Remove (c)transpose definitions from operators.jl. Add them to string.jl

The definitions give silent errors for matrix types that don't define `transpose` whenever the `*(A,B,C)` method is called. See the example below.
```julia
julia> Qf = qrfact(randn(4,4));

julia> Q = full(Qf[:Q]);

julia> A = eye(4)
4x4 Array{Float64,2}:
 1.0  0.0  0.0  0.0
 0.0  1.0  0.0  0.0
 0.0  0.0  1.0  0.0
 0.0  0.0  0.0  1.0

julia> Q'*A*Q #Matrix-transpose * Matrix * Matrix, should be approximately A
4x4 Array{Float64,2}:
  1.0          -2.22045e-16  -1.11022e-16  1.11022e-16
 -1.11022e-16   1.0           1.66533e-16  5.55112e-17
  0.0           3.33067e-16   1.0          8.32667e-17
  8.32667e-17   5.55112e-17   5.55112e-17  1.0        

julia> Qf[:Q]'*A*Qf[:Q] #QRCompactWYQ-transpose * Matrix * QRCompactWYQ, should be approximately A but isn't
4x4 Array{Float64,2}:
 -0.171812    -0.967699   -0.114264  -0.144855
 -0.592102     0.220933   -0.754075  -0.178816
  0.787293    -0.0461806  -0.594673  -0.156207
 -0.00810461  -0.112316   -0.25432    0.960542
```