Define integer indexing for Hermitian, Symmetric and Triangular, and symmetrize matrices when calling full

I think this makes printing of the matrices more efficient. The symmetrize functions should have been there already, so it was kind of a bug. The change ensures that you can cheat by defining a symmetric matrix from a non-symmetric and still get the right thing
```
julia> Symmetric(randn(5,5))
5x5 Symmetric{Float64}:
  0.296067  -0.334961    0.640948    0.479263   -0.492936 
 -0.334961  -1.99079     0.786062    0.509636    0.0130511
  0.640948   0.786062   -0.0259301   0.293401   -2.61745  
  0.479263   0.509636    0.293401   -0.0249051  -2.03061  
 -0.492936   0.0130511  -2.61745    -2.03061     0.91161  
```