Initial merge from changes for proposed version 2.1.1.

2.1.1:
======
- Features:
  * Handles multiple sources.list-formatted files
  * Supports arbitrary sources.list loading, parsing, and writing
    (meaning you can load any source file directly, or use the default set.)
  * Added the ability to query a list of all loaded sources.list files.
  * You can now fetch only the files for a specific repository.
- Bugfixes:
  * There was a bug in the unreleased alpha where removing all entries from
    any file could potentially result in overwriting the defaulatet /etc/apt/sources.list.

REVIEW: 114650
Revert "Evil but Necessary, libapt-pkg not thread safe, afaict."

This reverts commit 362afebca1323573f2b66d557e9c92ab97886ddb.

Adhoc testing suggested that there is next to no delay in cache opening,
the eventprocessing however essentially causes in-thread-pseudo-threading
which can easily cause crashes if the application does not add access
guards around QApt::Backend. Should this become a problem in the future
again the correct approach would either be to make QApt threadable or
thread aptpkg inside Backend itself and introduce appropriate guarding.

Please note that it is terribly unlikely for blocking open to cause any
problems as muon's initial ::init() is threaded and if an application has
issues with initial open they may as well add access guards and thread
::init() to unblock the UI. Subsequent cache opens will just about always
hit the disk cache and therefore take no time at all.

CCMAIL: echidnaman@kubuntu.org
CCBUG: 330477
Properly translate from std::string to QString
assert in Backend::stateChanges that oldState.size==packages.size

this is imperative because we iterate over the active package cache and
using its index we access content of oldState, so they must have equal
length. if they don't we have the most obvious sign of invalid oldState.
Merge branch 'master+RB114650'

CCMAIL: themanchicken@gmail.com