Drop Privileges to "Debian-apt" in most acquire methods

Add a new "Debian-apt" user that owns the /var/lib/apt/lists
and /var/cache/apt/archive directories. The methods
http, https, ftp, gpgv, gzip switch to this user when they
start.

Thanks to Julian and "ioerror" and tors "switch_id()" code.
DropPriv: Really call seteuid and not setuid, and add more checks

The only thing we are missing is non-portable saved ids support.
Use _apt as our unprivileged user name

Some people want to standardize on it, and BSDs do it too, so let's
do the same.

Reported-by: Paul Wise <pabs@debian.org>
DropPrivs: Do not use an invalid return check for setgroups()

setgroups() returns 0 on success

Git-Dch: ignore
DropPrivs: Also check for saved set-user-ID and set-group-ID
DropPrivs: Improve comments

Git-Dch: ignore
methods: Fail if we cannot drop privileges
DropPrivs: Move the re-set uid/gid thing to the end of the function

Git-Dch: ignore
DropPrivs: Add some comments for the more obscure setuid/setgid functions

Git-Dch: ignore
DropPrivs: Hard-fail if the user does not exist

Git-Dch: ignore
DropPrivs: Use APT::Sandbox::User instead of Apt::User::Nobody

Git-Dch: ignore
DropPrivs: Document what it does

Git-Dch: ignore
releasing package apt version 1.1~exp3
Merge remote-tracking branch 'upstream/debian/experimental' into feature/acq-trans
Do not download Packages/Sources files on I-M-S hit of the Release file

With this branch we know that the data in the lists directory is always
what the release file says, so if the Release file is unchanged, then
there is no need to queue the download of the other indexfiles as they
will be unchanged too (or broken :)