Improved the way BasePage works.

 - get() is now invoked on the base class, which in turn calls
child.handle(). This returns a response in the form of a dictionary.
 - BasePage.respond() generates the response, which now gets called by
get() and head(). Which means we now return valid Content-Length
information for HEAD requests!