Quantity.__numpy_ufunc__

Following issue #2492, here is an implementation of `__numpy_ufunc__` that at least locally passes all the tests (and allows some previous `xfail`s to be removed!). It also addresses #2483, so hopefully will help set us up for testing against numpy 1.9 in travis.

Notes:
- this requires #2571.
- Rather rough is the implementation of `__numpy_ufunc__` with methods other than `__call__` (e.g., `accumulate`, `reduce`). Right now, I only allow two-argument `ufunc`s that do not change the unit (this is in the new `scales_and_result_unit` function, which is in `quantity_helper`). Do comment if this is wrong! Or if it is true for only some of those methods.
- I let overrides of some methods depend on the numpy version; let me know if this is done the right way.
@mwcraig - good catch!