Add WSGI support
This first work on WSGI is only to stop using ZServer (Medusa), which is a required step before moving to Zope 4. This means that Zope should behave almost exactly the same way as before, notably:
- We don't take advantage yet of what WSGI offers, like IPv6.
- There's extra code to handle errors the same way as before (this is something we'll have to change for Zope 4).
The most significant change in behaviour is that the chosen WSGI server (waitress) does some of the HTTP work in worker threads (Medusa does it entirely in the IO thread), and the biggest consequence concerns the deadlock debugger that is now run from the worker thread:
- it does not work if all threads are blocked
- doing better would require to patch waitress in a quite ugly way
About TimerService, we simplify things by removing the egg. In zope.conf, it's possible to import from the product.