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 new line doesn't work: when enabled? is false, seconds = number of seconds in updated_at, which isn't what we want.

Also, we have 3 datetime (dt) objects: updated_at, created_at, and started_at.

The most compact expression to replace the original 6 lines is:

    dt_start = BuddyCheck.enabled? ? deploy.started_at || deploy.updated_at : deploy.created_at
    seconds  = (deploy.updated_at - dt_start).to_i

Thanks for pushing for a more compact form.