Allow test_managercli.py to run without a display.

The test_managercli.py class was importing from
test_handle_gui_exception.py which ultimately imported gtk.  Gtk
will fail to import if there is no display available so we were
unable to run test_managercli.py while SSHed in.  This commit
moves the shared classes to fixture.py
Update subscription-manager to require new python-rhsm.
Make StatusCache into an abstract class.
Add 'override' command and available options.
Add cache for storing repository overrides.
Add --list option to overrides.
Alter format_name() and columnize() to allow for leading spaces.
Indent repo overrides.
Add --add, --remove, and --remove-all options.
Handle cases where the user does not have a cache or entitlements.
Add method to tell if a repo is managed or not.
Add a decorator that can be used for possibly missing API calls.
Overwrite repo definitions with ones from the server.

Additionally:
  - Add a message to the repo file indicating it is auto-generated.
  - Wrap the calls to potentially non-existant APIs in the @attempt
    decorator.
  - Remove an incorrectly implemented __str__ method from the Repo
    class.
  - Remove a now unnecessary update method from the Repo class.
  - Merge in server overrides when the Repo object is generated.
Fetch override information from cache rather than server in RepoLib.

Also remove @attempt decorator as the cache will handle catching
exceptions for us.
Write override results back to the cache.
The repo --enable and --disable now use overrides.
Allow repo modifications in disconnected cases.
Use correct thread name in test.
Fix the Repos command to work in the disconnected case.
Add full_refresh_on_yum option.