Add aptdaemon/PackageKit (apt backend) plugin for what-provides MODALIAS

Add aptdaemon/PackageKit (apt backend) plugin for what-provides MODALIAS:
 - Add UbuntuDrivers/packagekit_plugin.py: The actual plugin, which checks
   the query against the patterns packages specify in their "Modaliases:"
   header.
 - setup.py: Install the new UbuntuDrivers Python package and register the
   plugin entry point.
 - Add test/archive/ with two dummy packages vanilla_1_all.deb and
   chocolate_1_all.deb (each providing two modalias patterns) and a
   corresponding Packages (generated with "apt-ftparchive packages .").
 - Add tests/ubuntu_drivers.py: Various test cases for
   UbuntuDrivers/packagekit_plugin.py, using a test aptdaemon instance on
   a local session bus.
 - debian/control: Add python-aptdaemon.pkcompat dependency. Also specify
   packagekit as an alternative, but conflict to packagekit-backend-aptcc
   for now, as this does not support the MODALIAS what-provides query, nor
   plugins. This means that you cannot currently install this package
   together with packagekit as long as the latter hard-depends on the aptcc
   backend. Also add aptdaemon/dbus build dependencies to be able to run
   the tests during build time.
tests/run: Exit with a nonzero code if there are failures or errors.
debian/rules: Ensure that our egg-info is built before running the tests, and removed again on clean.
tests/ubuntu_drivers.py: Drop unnecessary imports
debian/control: Add missing dependencies
tests/ubuntu_drivers.py: Add performance test case
debian/control: Bump python-aptdaemon.test build dependency to ensure availability of the test dbus.conf file
UbuntuDrivers: Add some documentation and copyright headers
debian/copyright: Rewrite using copyright 1.0 format.
Add tests/fakesysfs.py and UbuntuDrivers/detect.py

* Add tests/fakesysfs.py: Provide a fake sysfs directory for testing.
  Adapted from upower's integration test suite.
* Add UbuntuDrivers/detect.py: Hardware/driver detection functionality.
  These are borrowed and streamlined from Jockey.
Move the package modalias search logic to UbuntuDrivers/detect.py
UbuntuDrivers code reorganization

Rename UbuntuDrivers/packagekit_plugin.py to UbuntuDrivers/PackageKit.py and
now provide both the plugin as well as the system_driver_packages() function by
it. That way, all PackageKit API is in one module, and UbuntuDrivers/detect.py
is not PackageKit specific any more (and thus can be used outside of D-BUS
contexts).
Add UbuntuDrivers.detect.system_driver_packages()
packages_for_modalias() optimization

Introduce a cache into packages_for_modalias() which remembers the list of
packages which actually have a Modaliases: header for the passed apt_cache
object. This speeds up the call by a factor of 10 for the second and all
subsequent modalias queries.

Introduce a test case which queries the whole system apt database for 50
modalises, and ensure that it does not exceed one minute.
packages_for_modalias() more optimization

Pre-parse the Modaliases: fields, to avoid re-doing this on every query, and
also split it up by bus name so that the query can short-circuit all aliases
for a different bus.

Modify the test case to test 30 usb and 30 pci devices, and reduce the time
limit to 30 seconds.
Add UbuntuDrivers/detect.auto_install_filter()
Add ubuntu-drivers: Command line tool to list available driver packages for this system and auto-install them. This replaces the functionality of "jockey-text --auto-install". This does not use any D-BUS communication, so is safe to run in chroots.
debian/control: Switch to Architecture: any, we are already building this package anywhere but powerpc.
setup.py: Remove commented code for updating .mo files. This package is not supposed to show user-visible strings, and if we ever get them it should rather use python-distutils-extra.
setup.py: Only build hybrid-detect on x86 machines.