Sync ssot

Placeholder, needs more tests and comments. 
Fixes #1919 #1814 #2057 #2191 #2177 #2125 #2100 #1848 #1790 #1532 #1389 #1308

the following is about an order of magnitude faster

```js
function ManyRelationship(store, record, inverseKey, relationshipMeta) {
  this._super$constructor(store, record, inverseKey, relationshipMeta);
  // ...
}
ManyRelationship.prototype._super$constructor = Relationship;
```