Raise CommandError when shell command fails
Raise CommandError when shell command fails

In the effort to make Buffet resilient to hosts going down, it was first
identified that we swallow all failures in external shell commands. This
becomes problematic if we want to bubble up the failure to the Master to
properly handle.

The solution was to add a `CommandError` exception that would wrap the
result of a shell command in the event a non-zero exit status was
returned.

Related Story:
  http://www.pivotaltracker.com/story/show/40166629
  ("Buffet should gracefully continue when a node is down")

Change-Id: I22f433d352c524637860f5a4c8a19285fa9cae67
Reviewed-on: https://gerrit.causes.com/16102
Reviewed-by: Lann Martin <564fa7a717c51b612962ea128f146981a0e99d90@causes.com>
Reviewed-by: Aiden Scandella <1faf1e8390cdac9204f160c35828cc423b7acd7b@causes.com>
Tested-by: Shane da Silva <6f6e68d1df92f30cb4b3ce35260ddf94a402f33d@causes.com>

causes/buffet,causes/buffet