Fix setting matrix diagonal if row DataSet has dim > 1

If the row DataSet has dimension > 1 we need to treat the given rows
as block indices and set the diagonals of all rows in each block.
Use NumPy splat instead of list comprehension
Add test setting the matrix diagonal to 1.0
Merge pull request #359 from OP2/fix/set-diagonals-block

Fix setting matrix diagonal if row DataSet has dim > 1

If the row DataSet has dimension > 1 we need to treat the given rows as block
indices and set the diagonals of all rows in each block.