Fixes #204 (thans to @bpartridge) and #303

This pull request fixes problems for has many single and double linked where associating objects there were already associated would delete the associations and then restore them again. 

This was caused by the `equalsOneOf` method, which check to see if ALL properties of an object match. This is not necessary, we can just check if an object with the same identifier is present in the old objects. Right now the code just checks if an object with the same id exists. This will have to be changed when sequelize is to fully support non-id primary keys (as per the roadmap).