Add buddy check system

This adds a feature to Samson that can make samson require a Buddy for certain stages. The use case here is when deploying to production stages you want to have at least 2 developers know what code is being shipped.

/cc @zendesk/samson @jwswj @pswadi-zendesk 

### TODO

- [x] fix old tests
- [ ] add new tests
- [x] add email notification for `bypass`

### RISKS
- still using the confirmation setting on stages to determine whether a stage needs buddy check.
- If this branch gets merged, the measurement of the deployment duration needs to be fixed.
I still think the context of this email should be different, also as it's a before_notification

```
<h1>Deploy buddy system bypassed by <%= @deploy.user.name %> </h1>

<p>"The deploy buddy system has just been bypassed by <%= @deploy.user.name %>."</p>

<p>The deploy can be viewed <%= link_to 'here', project_deploy_url(@project, @deploy) %></p>

<h3>Risk</h3>
<%= render 'changeset/risks', pull_requests: @changeset.risky_pull_requests, type: "deploy" %>

<h3>Commits</h3>
<%= render 'changeset/commits', changeset: @changeset %>
```