First attempt at refactoring Quantity into Numpy ndarray sub-class
Gets the tests at least passing with Quantity as an ndarray subclass.  This
required two changes in the existing behavior of the class (both of which could
be worked around, but for now these changes were the easiest way to get things
working):

1. Quantity.value always returns a Python type (such as `int` or `float`) for
   scalar quantities, even if the underlying object is a Numpy scalar array.

2. Quantity instances have a default unit of unscaled_dimensionless (previously
   it was erroneous to instantiate a Quantity without specifying a unit).
Fix behavior of ufuncs, added tests
Added tests for simple operations
Added tests for ufuncs
Fixed majority of failing ufunc tests
Added more tests for ufuncs, ensure all tests pass
Fix for ufuncs starting with is* - these should just return a plain Numpy array
Fixed behavior for addition/subtraction and implicit float conversion. Now only dimensionless and unscaled quantities can be automatically converted to float or int.
Fixed failing tests
Added more tests (but mark as xfail until we implement/fix this functionality)
Added in ``__array_priority__``, which was previously missing.