Refactor `link` -> `addLink` and `unlink` -> `removeLink`
Refactor `property` -> `key` parameter in `addLink()` and `removeLink()`
MemorySource#find can find a record by object that contains an id
Implement MemorySource.findLink()
findLink now returns related records instead of raw data
Verify MemorySource#findLink - returns RecordNotFoundException for a record that doesn't exist
Rename MemorySource#_findFirst -> _filterOne

"find" methods should return promises
Comment cleanup
sendClientIds option allows client ids to be sent to the server

Otherwise, they're only sent if they match the remoteId
Publicize methods: ajax, buildURL, pathForType, pluralize, serialize, deserialize
Remove JSONAPISource#sendClientIds option
Simplify _findLink
Reverse links are now stored in `__rev` instead of `refs`
Client-side links are now cached as `__rel` and `__rev`
Rename initRecord -> normalize

Also, introduce getId helper
Separate Schema#initDefaults from normalize
Move `pluralize` to Schema
added test case
Merge branch '18-doubling-data-issue' of https://github.com/JannikStreek/orbit.js into refactor-links
Cleanup of test for duplication