MAHOUT-1464

The numNonZeroElementsPerColumn additions did not account for negative values, only counted the positive non-zero values. Fixed this in the in core and distributed case.

I added to Functions.java to create a Functions.notEqual. It may be possible to do this with the other functions but it wasn't obvious so I wrote one. The test is in MatrixOpsSuite, where is it used.

The distributed case was much simpler.

Changed tests to include negative values.
The issue I have is with the rowAggregation and columnAggregation API.  It enforces row by row evaluation.  A map-reduce API could evaluate in many different orders and could iterate by rows or by columns for either aggregation and wouldn't require the a custom VectorFunction for simple aggregations.