apt/debfile.py: Arch-qualify in compare_to_version_in_cache()
This uses the native architecture if the packages architecture
is all, and the other architecture in case. We might need to
consider versioned provides here, I have not looked at that
yet.
Handle both file sizes larger than SIZE_MAX and allocation
failures when reading the data of a tarmember.
If using the go() function with a callback, pass None as the data
parameter for files that are too large. For extractdata, raise
a MemoryError if the file too extract is too large.
Also check for an existing error first in extractdata, before
raising a new one.
Test the whole thing on 32-bit platforms with a sample deb that
contains a zeroed file that is 5GB large (compressed using xz
at level 1 to a few kb).