Use platform.dist() instead of platform.linux_distribution()

platform.linux_distribution() was added in Python 2.6
Work around not having prerepoconf.

prerepoconf was added in...yum-3.2.28? which is newer than what's on RHEL 5,
because of course it is. As best as I've been able to discern on my
archaeological expeditions, we can do what we did with prerepoconf by instead
doing the following:

- cachedir and cache can go in regular .conf. However, this needs to move to
  _getConfig, because accessing YumBase.conf will call _getConfig before we're
  ready for it and delete the preconf property. Surprise! conf.cache is already
  there, so just removed that part from __init__ and moved the cachedir
  override.
- failure_callback is set on the repo object, so this needs to move to
  add_repo. There is a setFailureCallback method on _repos, but this is a trick:
  it just loops through the current list of repos and sets the property.
- progressbar and callback can be set on _repos.

Sure hope this kinda works!
Use gpgcheck and repo_gpgcheck instead of _override_sigchecks
Messed up the __exit__ call in download_boot_images