Introduce a custom `keyForHasMany()` for `DS.RESTSerializer`.

This method returns the singularized key appended with `_ids`. It uses the same plurals hash on the serializer to determine singular versions of keys.

Fixes #710
Merge pull request #727 from dgeb/rest-adapter-has-many-ids

Introduce a custom `keyForHasMany()` for `DS.RESTSerializer`.
Add missing suspendRelationshipsObservers for belongsTo in ChangeRemove
Merge pull request #715 from sandstrom/relationship-change-remove-belongs-to-loop

Add missing `suspendRelationshipsObservers` for belongsTo in DS.RelationshipChangeRemove
Added support for polymorphic associations.

App.User = DS.Model.extend({
 messages: DS.hasMany(App.Message, {polymorphic: true})
});

App.Message = DS.Model.extend({
  created_at: DS.attr('date'),
  user: DS.belongsTo(App.User)
});

App.Post = App.Message.extend({
  title: DS.attr('string')
});

App.Comment = App.Message.extend({
  body: DS.attr('string'),
  message: DS.belongsTo(App.Message, {polymorphic: true})
});

You need to configure the serializer to map to the correct type:

DS.RESTAdapter.configure('App.Post' {
  alias: 'post
});
DS.RESTAdapter.configure('App.Comment' {
  alias: 'comment
});

Initializing an alias will automatically allow you to sideload this
type.

You can add support for embedded polymorphic associations
by overriding `addHasMany` of the serializer.