Change CookbookCollaborator to Collaborator

:fork_and_knife: I've decided to just include the first part of implementing collaboration with tools since this diff is getting a bit large :blush: Basically so we don't have to duplicate almost all of the collaborator functionality to be used with Tools this refactors `CookbookCollaborator` to `Collaborator` with a polymorphic association to either `Cookbook`, `Tool` or any other potential future shareable resource. All that needs to be done to support this functionality with tools is some view implementation but that will come in another PR.
In the same vein as an earlier comment, if I collaborate on `Tool.find(1)`, will I receive an email when `Cookbook.find(1)` is deleted?