Diffs, Project Slugs and a couple other things

I have to apologize for this pull request its a bit more than I would have hoped.

So here are the changes we have made.

1. Diff support, add the ability to request the diffs from the api
2. Project Slugs, project id was integer but its also possible to use "namespace/projectname" as a product id. 
3. adding project hooks now takes types for which events you want to register
4. findUsers can search for specific users
5. last added some new properties to a few of the models.

I tested it and it should merge with no problems, but resolving your changes with ours since we cloned this about 6 months ago let to some of the issues below which is why it looks like a lot of things changed.

There should be no api breaking changes from your end, and whoever else is using this except the Project Slugs issue. I think the String makes it better and gives the users more power. Due to certain issues I can't use the project id and need to use the slug, but this change supports both so it should be fine.