Fix Alfred pathToApp
Remove n+1 from SetIndex
Bump watson for BrowserStack stuff
Make the assumption that most of the time entries with the same key are consecutive
Use batch operations in the hasMany decoder
Add an `addAndRemove` method on set.

Here's a way to make batch insert/removes from a set and
fire events only once everything has happened.
Make semantics clearer and use a lower level way of building records in the hasMany decoder
Allow and prevent can take multiple arguments
Fire with the same argument signature as add/remove
Make sure events aren't prevented
Don't test for 'change' since SetProxy doesn't forward it.
Don't need to map unless the primary key is set
Documentation for addAndRemove.
Clean up some style
addAndRemove implementation without prevent/allow

Wrapped new _add and _remove methods
Revert prevent/allow

:'(
Merge pull request #738 from Shopify/set-add-and-remove

Add an `addAndRemove` method on set.
Vendor Batman
Wrap inverseOf association initialization in _withoutDirtyTracking
Give polymorphic has many inverses the same treatment