Add support for package reinstallation and downgrade

Add two new transaction flags:
 * HIF_TRANSACTION_FLAG_ALLOW_REINSTALL
 * HIF_TRANSACTION_FLAG_ALLOW_DOWNGRADE

Add two new state actions:
  * HIF_STATE_ACTION_REINSTALL
  * HIF_STATE_ACTION_DOWNGRADE
Support local repositories

Repositories on localfilesystem with just

  baseurl=file:///some/local/repo/path

in their keyfile were treated as remote repositories. This lead to a
librepo trying to download their packages to a local cache dir which
failed. This patch ensures that packages of local repositories will be
simply copied.
Allow to get repo loader out of context

Dependend libraries can avoid creating their own repository loaders
when they already have a context. Having more loaders instantiated wastes
resources and causes strange behaviour.