Use prereposetup_hook instead of postreposetup_hook

I was the one who originally suggested using `postreposetup_hook` (see fcf1e17), however this breaks with later versions of urlgrabber (e.g. on Fedora 20). I've added a test which highlights the issue and a simple fix: to use `prereposetup_hook` to swap in the `S3Grabber` before `retrieveAllMD` is called in the yum repo setup.

For reference, the relevant change in the yum package is here: http://pkgs.fedoraproject.org/cgit/yum.git/commit/?id=2dc7554108e707721054a1d770194e516eed1ced