add Diagonal AbstractMatrix
removed Vector * Diagonal and Vector / Diagonal, as not defined for Matrix
Merge pull request #2664 from simonbyrne/diag

add Diagonal AbstractMatrix type