* Re-implement cpu_sparse_matrix_wrapper using ublas types
* Move X_from_Y functions to __init__s
* Implement some of viennacl::compressed_matrix
* Need to consider what to do with matrix_expression result types, and
  the best way to minimise repetitious code (ie, parsimonious use of
  preproc directives etc).