ENH: NDArrayBackedExtensionArray.__array_function__
motivated by getting np.delete and np.repeat working, had to implement a few others to get the tests passing.

If we go down this path, I plan to incrementally add support for others, some of which (e.g. vstack) will avoid some object-dtype casting.

cc @TomAugspurger @shoyer @seberg any suggestions to clean the implementation, particularly the fallback and the unknown-args comments?