APE7 - A plan for NDData

This is ready for review. Comments are solicited until **Friday 14th November** after which a vote will be taken on whether to accept or reject this APE.

(note, this has been renamed to APE7 since there is already an APE6 proposed in #7)
I have a minor quibble about this, I think--  I agree that no implementation of `__array__` belongs in a base class as it is impossible to generalize.  But should we at least require that a concrete implementation provides an `__array__` interface, so that `NDData` objects can always be converted to Numpy arrays in some form or another (where it would be up to a given instance of a given class to determine the most appropriate representation)?