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)
Just a small point separate from my more general one: an ABC would be *above* `NDData`, in the sense that `NDData` is a subclass of the ABC (and ABC methods would be called with `super`). I would rewrite
"""
One idea that has been suggested is to have the prescriptions of this APE captured by an abstract base class, from which ``NDData`` would subclass, and which could be used ...
"""

It does indeed not affect the behaviour of `NDData`, but does affect how functions should test whether something behaves like an `NDData`; they would do `isinstance(<bla>, NDDataMeta)` (though @embray showed that this could be avoided with some trickery).