ENH: Make diagonal method return a view.

Also remove the test_diagonal_deprecation test and add test that
checks that a view is returned and that it is not writeable.

Curiously, diagonal method returning a view was not enabled for numpy
1.8.0-devel when 1.7.0 was tagged, so it is not tested as well as
might be desired.