Remove obsolete exception class
Streamline exception classes and names

Expected errors (those errors that are caused by the environment or
input data and not bugs in the code) are now all subclasses of
MachineryError. Those exceptions will be handled specially, e.g. by not
showing a backtrace.

This commit also harmonizes the names of the exception class which were
not very consistent.
Handle "MachineryError"s appropriately

"MachineryError"s are expected errors where we only want to show the
error message to the user.
Handle unexpected errors appropriately

Excpetions which aren't treated specially (like MachineryException or
Cheetah::ExecutionFailed) are considered bugs in our code so we log the
error and the backtrace and show a meaningful message to the user. That
message explains how to file a bug report for machinery and contains all
relevant information about the error including the backtrace.
Do not continue inspecting the system in case of unexpected errors

When an Inspector fails with an "expected error" (inheriting from
MachineryError) we collect those errors and show them to the user after
the full inspection is done.

In case of unexpected errors we rather want to bail out immediately
though because it's likely that the whole inspection result will be
useless.
Changed Cheetah exceptions to show all standard error output.

- Using code from pennyworth to collect stdout and stderr to be printed on
sterr so the user can see the full error message from the called command.
- Removed one obsolete conditional layer according to PR