Allow Quantity.sum (and other attributes, like mean, max, min, and std) to take
arguments and pass them to the numpy function if applicable. That way, users get
the full flexibility of the numpy API on those particular methods AND get the
added benefit that the result has the correct units (and it all runs fast).
Add missing arg check. Implement "reshape" in Quantity that passes down to the
underlying numpy array. This function would be used in instances where, for
instance, a certain API would send a flattened array of coordinates or
velocities with units attached, and you wanted to reshape the array into
(natom, 3) to be consistent with OpenMM's Context object.
Fix another small bug for unit handling with numpy arrays.  Fixes the exception:

Traceback (most recent call last):
  File ".../python/tests/TestNumpyCompatibility.py", line 87, in testNumpyAttributes
    d = self.data.reshape((100, 3))
  File ".../simtk/unit/quantity.py", line 575, in reshape
    return Quantity(self._value.reshape(shape, order=order))
  File ".../simtk/unit/quantity.py", line 142, in __init__
    if value == first_item:
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

Also add a test for new unit numpy capabilities.
Oops... Forgot unit on the reshape command.

Add a test for the various numpy attributes (and the arguments they take) for
the unit module.
Merge pull request #691 from swails/fix-sum

Fix compatibility with `unit.Quantity` and numpy arrays by having array methods accept and pass through relevant arguments.