Implement annotations (#1220)

See travis-ci/travis-ci#1220 for more info

This adds the model and table for annotations, as well as a service that can retrieve annotations by job ID.

We may also want a `find_annotation` service to return single annotations by ID, but I don't think that's critical.

## TODO

- [x] Reset annotations when restarting a job.
- [x] Add API payload handlers
- [x] Add Pusher payloads
- [x] Add a service to add/update annotations
- [x] Add validations (unique `source_name`(?), must have `description` and `job_id`).
- [x] Add image URL and alt text
- [x] `update_annotation` service should handle invalid provider credentials
- [x] Add provider name to payloads
- [x] Include payload in job (not jobs) payload.
- [x] Rename to annotations
- [x] Allow updating the URL in `update_annotation` service
- [x] Make sure URL is http(s)