reduce reusing argument variables, as it reduces clarity and makes debugging harder.
create promise labels outside of already visually complex code-paths
A records initial currentState can be on the prototype. Not need in
doing the extra set on each init
Merge pull request #1725 from stefanpenner/has-many-relationship-properties-are-read-only

hasMany relationship property are essentially readOnly, lets mark them as such.
Wait on all the findMany promises to resolve before resolving the store#fetchMany promise.
Merge pull request #1707 from bmac/fetch-many-include-all-promises

Wait on all the findMany promises to resolve before resolving the store#...
Destroying the store now:

- unload's all Records
- unload's all RecordArrays
- destroy's all records (so life cycle hooks get called for cleanup)
- destroy's all RecordArrays

Unloading a record now:
- is allowed, unless the record is inflight. (previously it was disallowed for all dirty states)

also, now once a record has been destroyed attempts to unload it will be
black holed