Add __array_ufunc__ to Series / Array
This PR:

* adds a basic (but incomplete) `__array_ufunc__` implementation for `IntegerArray` (to be able to check it is correctly used from Series for ExtensionArrays)
* adds `Series.__array_ufunc__` (not yet for `Index`)

---

@TomAugspurger revived my branch, will try to work on it a bit further this afternoon

What this already does is a basic implementation of the protocol for IntegerArray for simple ufuncs (call) for all IntegerArrays, and Series dispatching to the underlying values.

One question is if we want to force EA authors to implement an `__array_ufunc__` (eg by having a default implementation returning NotImplemented).  