Dimension Independent Similarity Computation

Provide Implementation of DIMSUM for squaring a Tall and Skinny Matrix as described in: http://arxiv.org/abs/1304.1467

Also, refactor Matrix squaring into a MatrixAlgebra object.

Scaling this up now until it breaks. This PR is currently only a request for comments. Will update with scaling results once ready.