Add pyuv_cffi hub; add an override list of hubs to try

- The pyuv_cffi hub is currently almost exactly the same as the pyuv hub, with
  the only difference being that it uses pyuv_cffi.
- An override variable (for development and testing purposes) is added to
  hub.py, allowing us to specify a list of hub names to try. If this is set to
  None or an empty list, the default set of hubs will be tried in order, which
  is specified in get_default_hub().