Refactor the ufunc handling code for Quantities

This commits moves all ufunc operations to __array_wrap__ therefore
making it easier to debug. The drawback is that ufunc is applied
twice, first by numpy in the original array then by Pint in the
transformed array.
Temperature conversion docs