Consolidate exception classes

Our rationale for exception classes is to have exception classes for
cross-cutting concerns (system description, connection erros,
command-line) and then for specific areas (building, kiwi export,
deploying, inspection). Inside these we try to not introduce too many
similar classes.

The `MissingSystemRequirement` and `MissingRequirement` exceptions confuse me. What is the difference? Are two different exceptions needed here?