Don't confuse users when file already exists

Already downladed files were handled correctly, but since
msg != None, a confusing [FAILED] prefix was displayed.
Get rid of that, show [SKIPPED] instead.
refactor: _handle_new_remote(), _handle_new_pkg_download()

Want a single code path in the Repo class where remote
librepo handles are being created.

Removes 3 functions but no semantic changes. Fixes a subtle bug
that _handle_new_pkg_download() used only baseurl[0].
enhancement: use proxy settings
enhancement: LRO_FASTESTMIRROR

We should enable FASTESTMIRROR earlier so not only packages but
also metadata use the sorted mirror list.  Also, turn it off when:

- we're reusing mirrorlist (mirror_setup=False)
- repo uses baseurls (keep the user supplied order)
Add repo.get_handle() returning a cached librepo handle
remove: repo.urlgrabber_opts()

Make urlopen() use repo instead, so stuff as proxy
setting is honored properly in _retrievePublicKey().
py3: don't want float results here