remove unused setuptools/site.nix
setuptools: remove obsolete patch
pythonPackages: update a bunch of them
Refactor buildPythonPackage to modularize building process.

Before we used `easy_install` command to handle installation
in one shot, now this is split into two phases:

 - buildPhase: python setup.py build
 - installPhase: python setup.py install

Each of those commands have the ability to pass extra
parameters through buildPythonPackage parameters as
`setupPyInstallFlags` and `setupPyBuildFlags`.

Phases now correctly execute post/pre hooks.

In configurePhase we inject setuptools dependency before distutils
is imported to apply monkeypatching by setuptools that is needed
for special features to apply.

We don't have to reorder default phases anymore, as test
phase comes after build and that works.

I rewrote offineDistutils into distutils-cfg with a bit cleaner
syntax and ability to specify extraCfg to the config file.

Plone packages are failing and garbas said he will adopt them to
the new functions. The rest of the packages I fixed and these commits
shouldn't break any package (according to my testings) and they introduce
16 new jobs and fix 38 that were broken before.
adopt setuptools to new python infrastructure (also make sure we unzip setuptools while building)
adopt rest of the packages that were failing with the buildPythonPackage changes
pythonPackages.setuptools: 2.0.2 -> 2.1
distutils.cfg: name as others coding conventions for python packages
garden
document setuptools monkeypatching and DETERMINISTIC_BUILD=1
buildPythonPackage: Add --old-and-unmanageable flag to install command and add more docs.

For explanation see inline comments.
miro: keep quotes
fix eval
remove unneeded pytest test skip
bash doesn't allow comments between multiline statements