Complete description of Python web server in terms of extensibility.

Rewrote much of the code and the second half of the chapter in order to focus on extensibility.
This would be another good opportunity to discuss defensive programming in the face of untrusted data. It might be interesting in this context to talk about comparing the result of os.path.normpath() with an "allowed" document root.