ENH: Add Numpy Array Interface support to Pandas objects

WIP
this is too complicated. isn't this:
```
return any([ hasattr(obj, attr) for attr in ['__array__','__array_interface__','__array_true'] ])
```

equivalent / simplier / faster? (this is going to be called a lot, pls show a perf check as well)