Implement the Webhooks API

Hello everyone. I am submitting this pull request for overall code review, I tried to follow the guidelines as much as possible but please feel free to comment on the code so that its quality improves, in particular for example:

- I added the type synonym for RepoName and RepoOwner so that in the type signature you have a better idea what each string value means (I could even make it a tagged type but that might be overkill, what do you think?)
- The records' field names are kind of long but it prevents the overriding of symbols named the same.