Runit should wait for drdb before starting backend services

Background info here: https://chef.leankit.com/Boards/View/111432846/146112858

In short the backend services have historically tried to start before the HA backing store was mounted and then got horribly confused.  This prevents the backend ha services from starting until the backing datastore is mounted and passing basic tests.

It relies on the `ha_backend_storage status` command and is therefore backing storage level agnostic.

I tested it by hand on standalone (ensuring it built correctly and pedant passed) and with HA on EC2 (ebs) in which I ensured the services started correctly (with pedant tests passing) and then changed the backend storage status script to return 1 and saw that the services were waiting.

Wilson run: http://wilson.ci.opscode.us/job/chef-server-12-trigger-ad_hoc/231/
I'm a big :+1: on delegating the responsibility for figuring this out to the backend_storage scripts.  However, it isn't clear to me that this will work with the current state of the scripts.  Our DRBD script appears to require a current cluster state:

https://github.com/opscode/opscode-omnibus/blob/master/files/private-chef-cookbooks/chef-ha-drbd/templates/default/ha_backend_storage_drbd.erb#L52-L55

And would return 0 for a secondary backend node where the storage is unmounted (since that is the correct state).

On the AWS side, I'm a little worried that doing a quick restart of backend services (a common support procedure), would result in multiple AWS API requests; however, I think this small slowdown is worth it given the huge benefits of this fix.  We could also just add some optimizations into the AWS status script to avoid API calls in some cases.