Support RPM virtual packages

Virtual packages can be used to add dependencies on specific libraries, make a dependency architecture specific, and much more.

Some RPMs also provide additional capabilities via virtual packages. For instance, `joystick` is no longer an RPM in Fedora, but is instead provided by `linuxconsoletools` as a virtual package. Trying to install
`joystick` will install `linuxconsoletools`, but rosdep will not detect the installation and will assert a failure.

This patch modifies rosdep look for what packages *provide* a given package name, not just what packages have a matching name.