Never parse Version/Architecture tags in a Translation-$lang file

Version/Architecture information in a Translation-$lang file is
not allowed, so don't try to parse it. This is a fix for a bugreport
where a Translation-en file contained the content of the regular
Packages file (probably due to local FS corruption). This lead to
strange error messages on file download.

Thanks to Thomas Reusch for the report.
add an additional test for arch specific conflicts

In bugreport #747261 I confirmed with this testcase that apt actually
supports the requested architecture-specific conflicts already since
2012 with commit cef094c2ec8214b2783a2ac3aa70cf835381eae1.

The old test only does simulations which are handy to check apt,
this one builds 'real' packages to see if dpkg agrees with us.

Git-Dch: Ignore
make test independent from the actual Install-Size

Git-Dch: Ignore
mark as Automatic/Downloadable pure as gcc suggests

Git-Dch: Ignore
Reported-By: gcc
consistently fail if Smart* packagemanager actions fail

These failure conditions come with an error message attached and the
conditions aren't workaroundable (otherwise this would have been done
instead of returning failure), so not erroring out here means that we
execute dpkg later on with a known not-working ordering adding insult
(our own error messages at the end) to injury (dpkg failure).
fix tight loop detection and temporary removes

As outlined in #748355 apt segfaulted if it encountered a loop between a
package pre-depending on a package conflicting with the previous as it
ended up in an endless loop trying to unpack 'the other package'.

In this specific case as an essential package is involved a lot of force
needs to be applied, but can also be caused by 'normal' tight loops and
highlights a problem in how we handle breaks which we want to avoid.

The fix comes in multiple entangled changes:
1. All Smart* calls are guarded with loop detection. Some already had it,
   some had parts of it, some did it incorrect, and some didn't even try.
2. temporary removes to avoid a loop (which is done if a loop is
   detected) prevent the unpack of this looping package (we tried to unpack
   it to avoid the conflict/breaks, but due to a loop we couldn't, so we
   remove/deconfigure it instead which means we can't unpack it now)
3. handle conflicts and breaks very similar instead of duplicating most
   of the code. The only remaining difference is, as it should:
   deconfigure is enough for breaks, for conflicts we need the big hammer
fix screen width detection for apt/apt-get lists

3163087b moved SigWinch(int) from apt-get.cc to private-output.cc
without moving #include <sys/ioctl.h>, making SigWinch a nop.

Closes: 748430, 747942
update Doxyfile to 1.8.7 to silence deprecation warnings

Git-Dch: ignore
Merge remote-tracking branch 'upstream/debian/sid' into debian/experimental

Conflicts:
	test/integration/test-bug-747261-arch-specific-conflicts
cmdline/apt-extracttemplates.cc: remove unused private var

Reported-By: clang -Wall
Fix more warnings from clang

Reported-By: clang++ -Werror

Conflicts:
	apt-pkg/acquire-item.cc
	apt-pkg/acquire-item.h
	apt-pkg/deb/debmetaindex.h