some dnf/repo.py refactoring, initial proxy support

Summary:

- Don't confuse users when RPM file already exists locally
- apply repo.proxy config variable to remote librepo handles.
- optimize LRO_FASTESTMIRROR setting a bit.
- urlopen(url, repo=None), honor per-repo settings
- update urlopen() users (pubkey retrieval)
- drop urlgrabber_opts() function.