debian/rules:

* debian/rules:
  - call dh_clean in clean (closes: #714980)
apt-pkg/packagemanager.cc:

* apt-pkg/packagemanager.cc:
  - increate APT::pkgPackageManager::MaxLoopCount to 5000
cherry pick 39a07ec8f2c612a5af234c7713571362f7ca90b4
Make sure we always have at least two kernels marked not for removal
get dpkg from apt-config as well and add robustness against missing/failing apt-config (for paranoia)
Conflicts:
	debian/apt.auto-removal.sh
* Fix up two things in debian/apt.auto-removal.sh:
  - Use exact matches with $-terminated regexes, so we don't get
    confusion between similarly-named kernel flavours.
  - Keep linux-backports-modules in sync with installed kernels.
Conflicts:
	configure.in
	debian/changelog
	doc/apt-verbatim.ent
debian/apt.auto-removal.sh: merge the remaining bits
Version 3 for DPkg::Pre-Install-Pkgs with MultiArch info

Adds on top of Version 2 to all displayed version numbers the
architecture as well as the MultiArch flag for consumption by the hooks.

Most of the time the architecture will be the same for both versions
displayed, but packages might change from "all" to "any" (or back)
between versions so we can't display the architecture for packages.

Pseudo-Format for Version 3:
<name> <version> <arch> <m-a-flag> <compare> <version> <arch> <m-a-flag>

Examples:
stuff - - none < 1 amd64 none **CONFIGURE**
libsame 1 i386 same < 2 i386 same **CONFIGURE**
stuff 2 i386 none > 1 i386 none **CONFIGURE**
libsame 2 i386 same > - - none **REMOVE**
toolkit 1 all foreign > - - none **REMOVE**

Closes: #712116
implement arch+= and arch-= for sources.list

Default is to acquire all architectures from APT::Architectures which
can be changed by arch=, but this isn't very flexible if you want
"mostly" the default as you have to hardcode the architectures then,
so arch-= and arch+= can be used to add/remove architectures from the
default set.

On a machine with 'amd64' and 'i386' configured the lines:
 deb [arch+=armel] http://example.org/debian wheezy rocks
 deb [arch-=amd64] http://example.org/debian jessie rocks
will result in the download of:
 wheezy Packages for 'amd64', 'i386' and 'armel'
 jessie Packages for 'i386'
prevent MarkInstall of unsynced Multi-Arch:same siblings

Multi-Arch: same packages can be co-installed, but need to have the same
version for all installed packages (aka "siblings"). Otherwise the
unsynced versions will fight against each other and the auto-install as
wel as the problem resolver will later have to decide between holding the
packages or to remove one of the siblings (usually a foreign) taking a
bunch of packages (like the entire foreign setup) with them.

The idea here is now to be more pro-active: MarkInstall will fail for
a package if the siblings aren't synced, so we don't allow a situation
in which a resolver has to decide if to hold or to remove-upgrade under
the assumption that the remove-upgrade decision is always wrong and
doesn't deserve to be explored (expect valid out-of-syncs of course).

Thats a pretty bold move to take for a library which is used by
different solvers so this check is done in IsInstallOk and can be
overridden if front-ends want to.
update changelog