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.
Hi Max:

Thanks for the code review!

In regards to the config, I think I got confused since the docs call for required fields but then it calls them optional in the field's details, and misinterpreted the docs by assuming those were the only ones that could be used.

I'll make the changes you proposed, and resubmit.