Fixes hasMany records being duplicated after payload returns from server

There is an edge case where a hasMany record gets duplicated (same ID).
Basically, if we generate a record locally using UUID or any custom ID
format, then push it to production which will return the same ID
previously defined, the store's array that holds records to be resolved
is going to duplicate both items, even if they have the same ID.

This commit fixes that by not allowing duplicated IDs in that array.
Fixes #1973

Failure in Firefox when record id equals 'watch' .
Gecko adds watch function to Object.prototype (as described here:
https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Ob
jects/Object/watch)
add checking if Object.prototype.watch is exist

Object.prototype.watch function is used in model unit test to check a
collision of a record's id with object function's name.
So we create this function if needed and remove after test if it was
not defined before.
Merge pull request #1990 from eljusto/master

Fixes #1973
Improve error message
Wrap model test in try/finally

Before if the test crashed in the middle we would have leaked the
prototype changes. Now we make sure we clean up in a finally block.
Merge pull request #1991 from emberjs/wrapObjectModificationInTryFinally

Wrap model test in try/finally
documentation fix

should be string 'no'
Merge pull request #1998 from kingpin2k/master

Documentation fix for embedded records
Merge pull request #1976 from emberjs/pr1656

Fixes hasMany records being duplicated after payload returns from server
Add example for expected JSON relationship keys.
Fixes typo in `pushPayload` documentation
Merge pull request #2001 from locks/patch-2

Fixes typo in `pushPayload` documentation
Merge pull request #2000 from efigarolam/master

Add example for expected JSON relationship keys.
[Bugfix] Decouple DS.EmbeddedRecordsMixin from DS.ActiveModelSerializer

[Fixes #1974]
fix a few typos
Merge pull request #2003 from givanse/typos

fix a few typos
[DOC] Add note about expected JSON for ActiveModelAdapter relationships

This is covered in the recently added example, but not explicit.
Merge pull request #2006 from Dave-Choi/patch-1

[DOC] Add note about expected JSON for ActiveModelAdapter relationships
better error for missing inverse on hasMany/belongsTo