Clean up Diagonal methods

- New subtraction, scalar multiplication, division methods
- New linear solver, eigensystem solver, singular solver methods
Add tests of Diagonal methods
Restore missing <=(Float16,Float16) operator