Mixed mass example.

Based on specifications outlined at the MAPDES meeting on 7th December.
Block structure draft.
Fix failures in test_api
Fix caching of Sparsity and SparsityBlock
Get matrix unit tests working with sequential
Use public property rather than private member in test.
Fix most of the OpenCL fails.
Fix remaining failures
Fix some errors from the CUDA backend.
Fix CUDA tests.
Add decorator for single block checking. Add test of check.
Use single_block decorator everywhere appropriate
Exorcise redundant _lib_handles
Remove unused modes from mat
Handle Mat.dtype properly
Name MatBlocks correctly.
Place common Mat properties in device.py
Remove unneeded code.
Fix indentation
Add sparsity API tests for blocked sparsities.