provide wrapped calls to urlopen and urlretrieve that use netrc as fallback

For review.

netrc is a protocoll where users have a .netrc file intheir home that stores credentials used e.g. for ftp, but are also used automatically e.g. by git.

Extracted code from
https://github.com/vcstools/rosinstall/pull/70
to vcstools, as we can use it well there too. Should help fixing:
https://github.com/vcstools/wstool/issues/8

Also cleaned up functions, refactored and commented more, and provided unit tests for each.