Make hasMany association decoding not make ephemeral record instances just to grab their ID.

 - This removes the ability for developers to add funky `id` accessors on their models as a simplifying optimization.
 - We used to have to build ephemeral record instances using the JSON data given, and then ask what their ID would be, and then use that value to look up potentially existent record instances in the identity map so that we can apply the JSON to that instance, and thus keep bindings consistently bound to server side data.
 - Instead of building that instance, we only build a new instance when we can't find something with the serverSideData[model.primaryKey], which I really hope is sufficient for everyone.
Switch to _makeOrFindRecordFromData for the polymorphic hasMany association as well.
Merged 'master'
Merge pull request #626 from Shopify/pre_instance_identity_mapping

Pre-instance identity mapping in hasMany decoder