Adds  #'sum to API

In order to flesh out the API more I'm using it to implement some common machine learning metrics.  The first hiccup I ran into was that `sum` was not part of the API.  I added it along with the corresponding protocol and default implementation for the persistent vector.

I did consider just making a single implementation as `(m/ereduce m/add m)` defined in `core.clj` but I didn't know if that would be appropriate for all matrix types.  It seems like it would though so I could revert these changes and go with that instead.  What do you think?

BTW, any chance I could convince you to drop clojure.test and use midje instead?  Midje tests are far easier to read and write IMO and double as a nice form of documentation.