Move test helpers into BaseCherryPyTestCase

The request method now returns a custom object rather than the
CherryPy response, which makes for less verbose and repetitive tests.