Feature/algebra

Okay, main changes:

Tests for CSCMatrix Operators under OptimizationSpace
FrobeniusMatrixNorm is better
Minor refactor to CSCMatrixOps 

Though note that Octave does skip zeros for elementwise multiplication (even when the result should be NaN and not 0).

```octave
octave:6> (speye(10, 10) ./ speye(10, 10)) .* speye(10, 10)
ans =

Compressed Column Sparse (rows = 10, cols = 10, nnz = 10 [10%])

  (1, 1) ->  1
  (2, 2) ->  1
  (3, 3) ->  1
  (4, 4) ->  1
  (5, 5) ->  1
  (6, 6) ->  1
  (7, 7) ->  1
  (8, 8) ->  1
  (9, 9) ->  1
  (10, 10) ->  1
```