squash merge of the feature/apt-binary branch without the changes from experimental
Merge remote-tracking branch 'upstream/debian/sid' into feature/apt-binary2
install libapt-private* into the apt binary
really build apt.install
make destructors virtual
add PACKAGE_MATCHER_ABI_COMPAT mode for now so that this branch can be merged without breaking ABI
init the pkgTagFile with the size of the Release file

Release files are basically one big Section, so we might safe some
Resize circles by starting with the filesize.

Git-Dch: Ignore
do not call make from libapt/run-tests if its called by make

If we are called by make everything is build already and
so this is just a noise nop we can just skip.
(Noisy as it complains about being unable to communicate with
 the other makes to coordinate with the jobserver)

Git-Dch: Ignore
rework the parameter creation for the Hashsum test

Avoids having to different places from which test binaries are called

Git-Dch: Ignore
set MALLOC_CHECK_ and MALLOC_PERTURB_ for testcases

In bugreport deb:719629 Paul Wise mentions both to enable some malloc
checks and as more testing can't hurt we enable both for all testcases.

Git-Dch: Ignore
ensure that pkgTagFile isn't writing past Buffer length

In 91c4cc14d3654636edf997d23852f05ad3de4853 I removed the +256 from
the pkgTagFile call parsing Release files as I couldn't find a
mentioning of a reason for why and it was marked as XXX which suggested
that at least someone else was suspicious.

It turns out that it is indeed "documented", it just didn't found it at
first but the changelog of apt 0.6.6 (29. Dec 2003) mentions:
  * Restore the ugly hack I removed from indexRecords::Load which set the
    pkgTagFile buffer size to (file size)+256.  This is concealing a bug,
    but I can't fix it right now.  This should fix the segfaults that
    folks are seeing with 0.6.[45].

The bug it is "hiding" is that if pkgTagFile works with a file which doesn't
end in a double newline it will be adding it without checking if the Buffer
is big enough to store them. Its also not a good idea to let the End
pointer be past the end of our space, even if we don't access the data.

Closes: 719629
use malloc instead of new[] in pkgTagFile

We don't need initialized memory for pkgTagFile, but more to the point
we can use realloc this way which hides the bloody details of increasing
the size of the buffer used.

Git-Dch: Ignore
allow Pre-Install-Pkgs hooks to get info over an FD != stdin

This adds ::InfoFD option alongside the ::Version one to request sending
the information to the specified FD, by default it is STDIN as it was
the case before.

The environment variable APT_HOOK_INFO_FD contains the FD the data is on as
a confirmation that the APT version used understood the request.

Allowing the hook to choose the FD is needed/helpful e.g. for shellscripts
which have a hard time accessing FDs above 9 (as >= 10 are usually used
 internally by them)

Closes: #671728
Merge remote-tracking branch 'donkult/debian/sid' into debian/sid
Merge remote-tracking branch 'mvo/feature/apt-binary2' into debian/sid

Conflicts:
	cmdline/apt-get.cc
update changelog
prepare for release
add lintian override for no-shlibs-control-file and only install libapt-private.so.* instead libapt-private.so
fix incorrect bugnumber for the Pre-Install-Pkgs hook (Closes: #671726)