Instead of having running test installing eggs with setuptools during `python setup.py test`, which fails for `caucase` because one of its dependency (namely `cryptography`) cannot be installed so easily, we want to install the dependencies via buildout, using the same installation methods than in the actual software profiles using our eggs.
What I initially believed would be a small change turned out to be a long journey, especially because of using a develop version of `slapos.recipe.cmmi` caused signature changes in the parts installed by this recipe ( `git`, `openssl` etc - some parts that takes a bit of time to install ) so I had to fight with the software being reinstalled each time. Even though the cases which leads to reinstallation are understood (this even involved fixing a bug in buildout slapos.buildout!14 ), this is still the case. Some solutions are proposed in the commit message of f4b6eeda , but this reached a state where we can consider first merging with this known problem or discuss ways of improving that before merging if it's considered as blocking. Current state is that it takes one hour to re-install what has to be reinstalled and run the test suite on test runner.
Despite this issue, this approach already improve things, because:
* `caucase` tests are running (and passing)
* some `slapos.cookbook` are improved so that they reuse eggs from the buildout and do not install again eggs when the are run.
* ... and some other small cleanups
This depends on erp5!619 on the `erp5.util` side.
/reviewed-on !309

This function factorize the code to instanciate a recipe in a fake
buildout.
The new feature is that if running in a buildout directory, the recipe
will reuse the eggs from this buildout instead of trying to install eggs
again.

Instead of letting `python setup.py test` install the depencies, use
buildout way of installing the eggs.
This software use `interpreter` recipe of `zc.recipe.egg` to install a
python with all eggs pre-installed. This is a way to get all the
dependencies at install time instead of getting them at run time from
pypi when running `python setup.py test`.
`erp5.util.testsuite` has been extended to support a parameter to
specify which python interpreter to use.
One issue is that this way of installing eggs by buildout cause chicken
and egg problem: cloning repository containing `slapos.recipe.cmmi`
needs git, and to compiling git needs `slapos.recipe.cmmi`.
The consequence of this is that re-running software will install too
many parts again.
One solution for this would be to clone `slapos.recipe.cmmi` with a
`git` command provided by testnode or system package.
Another solution would be to not install `slapos.recipe.cmmi` develop
egg, simply install the egg from it's current pypi version while
installing the software (running tests will be from the git checkout
anyway).
For now this is open issue.
Another point of attention is that `python setup.py test` install the
requirements listed in `test_requires`, but `zc.recipe.egg` does not
provide a way of installing these. Some of our packages have `[test]`
entrypoints, in this case, the software installs the test entrypoints.
For others, we install the eggs.
Other improvements:
* use a simple `slapos.recipe:wrapper` instead of `slapos.cookbook:egg_test`
* fix the typo in repository name erp5-util-repository ->
erp5.util-repository ( this mean we will have to fix the test suites in
nexedi ERP5 )
* document "what is this software" and a scenario of how this software
can be used to develop slapos eggs.
* switch to buildout-hash.cfg for easier template hash management.

monitor: move scripts wrapper and logrotate conf to buildout, uses some new promises from slapos.toolbox
monitor was updated in slapos.toolbox to not generate promise launcher scripts anymore. All
generated scripts are now in buildout.
Monitor promise run script is removed from cron, slapgrid is used to run promises.
Replace some old promises by the new ones from slapos.toolbox. Cleanup monitor configuration.
Monitor report and monitor-promises directory are now obsolete.