888058 - Changed model for the client-side exception handler to be

overridden and specified to the launcher, allowing an individual client
(admin, consumer, future other) to customize error messages where
relevant.

- Moved the little logic that was in pulp-admin/pulp-consumer to a new package in pulp.client. This was mostly to give me a place to put the client-specific exception middleware and easily test them without all sorts of jumping through import hoops. And obviously, it's cleaner.

- admin and consumer aren't the only clients we'll ever necessarily have. One on the radar would be to work with Katello's disconnected case, which would be a client tuned towards reading a manifest and exporting the repos from it as ISOs. Given that, I feel even better about this approach of making the default exception middleware very generic (there are possibly ways to tune this further) and having the client tweak messages as appropriate.