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.
So.. what's the story with the snake_case class names? If this is a common pattern, I haven't seen before and it might bear some explanation, otherwise they should be CamelCased.