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
- [x] 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 meant a class constant calculated on definition.
On 30/07/2014 3:58 am, "indianola" <notifications@github.com> wrote:

> In lib/policies/buddy_check.rb:
>
> > @@ -0,0 +1,24 @@
> > +class BuddyCheck
> > +
> > +  def self.enabled?
> > +    "1" == ENV["BUDDY_CHECK_FEATURE"]
>
> It's not clear to me what you mean here. The ability to enable/disable the
> buddy_check feature has to be contained either in an ENV variable or in a
> yml file, and either of these routes requires that the value be wrapped by
> a method.
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/zendesk/samson/pull/38/files#r15540399>.
>