Set Zlib as optional requirement for BINSASCII extension

ZLIB_CRC32 support is enabled only if ZLIB_LIBRARIES is set.
Merge branch 'zlib-optional-for-binascii'

* zlib-optional-for-binascii:
  Set Zlib as optional requirement for BINSASCII extension
Add USS_SYSTEM_* options to control which dependent libraries are used.

Decouple extension requirements from system libraries availability. In
other word, it is possible to directly specify the requirement
of each extension without relying on "find_package", "find_library" or
"find_file".

For sake of consistency, move "find_*" system introspection call from
main "CMakeLists.txt" to "ConfigureChecks.cmake"

Fix compilation of pyexpat and _elementtree extension when building
against implementation of expat provided by python.
Merge branch 'tweak-extensions-requirements'

* tweak-extensions-requirements:
  Add USS_SYSTEM_* options to control which dependent libraries are used.
Fix undefined "_environ" symbol link MacOSX error specific to shared build.

This commit fix the MacOSX shared build that was broken as a side effect
of the removal (commit 375f0fca) of the setresgid/setresuid hack.
Merge branch 'fix-macosx-environ-link-error'

* fix-macosx-environ-link-error:
  Fix undefined "_environ" symbol link MacOSX error specific to shared build.
Configure python packageconfig file
Mirror regular build system installing "install-sh" and python static lib
Tweak generated Makefile to match one generated by regular python build

To ensure the Makefile is also properly generated on a given platform,
a small script named "confall.py" has been created:

   See https://gist.github.com/jcfr/5111758

The config dump generated by confall.py for both an installed tree obtain
using a autoconf system or a CMake system can easily be compared to
further tune the Makefile configuration.

Having the Makefile properly configured seems rather critical to allow
dependent package to be build properly:
  http://bugs.python.org/issue3588
  http://bugs.python.org/issue16848
Merge branch 'add-pkgconfig-and-tweak-Makefile-config'

* add-pkgconfig-and-tweak-Makefile-config:
  Tweak generated Makefile to match one generated by regular python build
  Mirror regular build system installing "install-sh" and python static lib
  Configure python packageconfig file
Enable building of math based libraries on win32 system

The concerned libraries are: cmath, datetime and time

On windows, math functions are provided by "C runtime" and no specific
library is required.
See http://msdn.microsoft.com/en-us/library/x39715t6(v=vs.71).aspx
and http://msdn.microsoft.com/en-us/library/abx4dbyh(v=vs.71).aspx

For that reason, the variable M_LIBRARIES has been introduced and is
set to the value of HAVE_LIBM on UNIX system and set to an emptry
string on win32 system.
Add msvcrt module

Since the source of the module doesn't live under the Modules folder,
the extension macro has been updated to support absolute dir.

Note that more work is required to support absolute dir for assembler file.
Add subprocess win32 module
Add _winreg win32 module
Add _msi win32 module
On windows, install headers in expected sub folder.

As specified in the "get_python_inc" function provided by the sysconfig
module, headers are expected to be inside the "include" directory.
See http://hg.python.org/cpython/file/6fc9103d55f0/Lib/distutils/sysconfig.py#l95

Note that for now only the (1) in-source build tree and (2) install tree
are compliant.
Merge branch 'add-missing-win32-modules'

* add-missing-win32-modules:
  On windows, install headers in expected sub folder.
  Add _msi win32 module
  Add _winreg win32 module
  Add subprocess win32 module
  Add msvcrt module
  Enable building of math based libraries on win32 system