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.
This seems like unnecessary repetition.
What do you think about:
```ruby
if deploy.persisted? && !(BuddyCheck.enabled? && stage.confirm_before_deploying?)
  confirm_deploy!(deploy, stage, reference)
end
```