hasMany relationship property are essentially readOnly, lets mark them as such.

This also fixes a potential issue with minified code changing the arity of these CPs.
This happens because "value"'s only purpose is to increase the arity to 2, such that
setting to this CP has no effect. Unfortunately, when minified it does have an effect.

Also, allowing this property to be set to, even though it has no outcome, is just straight up misleading.
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#...
remove unneeded and misleading "async" test helpers
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