Destroying the store cleanups up after itself:

- unload's all Records
- unload's all RecordArrays
- destroy's all records (so life cycle hooks get called for cleanup)
- destroy's all RecordArrays

please *note* unloading a record is now allowed, unless the record is inflight. (previously it was disallowed for all dirty states)


- [x] much peer review
- [x] fix the bugs
- [x] fix the next set of bugs
- [x] consider performance implication (destroying a store, now actually does stuff)