librepo: refactor dnf.repo.Repo.

Adds our own subclass of librepo.Handle. Hopefully this will make things
less confusing by moving the _lr_* methods out.