Improve setup.exe running detection

Before this change, the code that determines whether setup.exe is
running would not detect whether newer versions of Cygwin setups with
filenames setup-x86.exe and setup-x86_64.exe were running.

Also add a negative lookbehind to prevent matching filenames like
some-other-program-setup.exe that are not Cygwin setup.
Support .tar.xz files (LZMA compressed tarballs)

Support for these files didn't land in Python until 3.3.  So, when a
.tar.xz file needs to be opened, call `xz -d` on it first.  Then open
the resulting .tar file with Python's tarfile module, and finally delete
the .tar file when the TarFile object is closed.
Fix tests, `cyg-apt update`, etc.

With the release of 64-bit Cygwin, mirrors changed from having setup.ini
in the root to having /x86/setup.ini and /x86_64/setup.ini.  Now,
cyg-apt will detect the right platform and use the new directory
structure.

Also change the mirror used for testing from cygwin.xl-mirror.nl to
cygwin.uib.no, since xl-mirror doesn't have the x86_64 release.
Make `cyg-apt search` case-insensitive