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.
newer versions of q break compilation
Allow loading associated sets with options

something like foo.get('bars').load {baz_id: 2}, (err, bars) ->
pass 'env' when loading an AssociationSet
merge upstream
Make SetSort work with SimpleSets just for the first ordering.
Document SetIndex
Add "Install dependencies" step in Contributing section of README.
InclusionValidator and ExclusionValidator in the fashion of Rails.
Rename variables for readability and to avoid confusion
exclusion, not exlusion
Docs for inclusion/exclusion validators
Merge pull request #666 from utkarshkukreti/patch-1

Add "Install dependencies" step in Contributing section of README.
Document SetSort
Add tests for new validators.
Make changes from @nickjs' feedback.
Merge pull request #668 from danott/validators

InclusionValidator and ExclusionValidator
Use optionNode.text instead of innerHTML to correctly update option texts in all browsers.
A hacky debounced function to fix select element widths in IE