Fix for minus for a single argument

Addresses issue #195.
1) Changed the reduce to apply. reduce will work if we provide a initial value of 0 (zero matrix when appropriate), this however might be a more expensive solution.
2) Added 3 more unit tests for this case.
3) Performance is virtually identical before and after changes:
MBP 2.4GHz w 16GB DDR3
Before:
=====
(time (dotimes [_ 10000] (matrix-minus-test)))
"Elapsed time: 1833.263 msecs"
---------------
After:
=====
(time (dotimes [_ 10000] (matrix-minus-test)))
"Elapsed time: 1831.696 msecs"
---------------