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.
Does it make sense to discuss escaping here, since we're emitting (arguably) untrusted data here, in the form of filenames? On one hand, it seems secondary to the main goal of discussing the mechanics of a web server, but security is (or should be, at least) such a focus of someone writing Internet-facing code that it might be worth at least a passing mention.