This is needed because during the test writing process there
are often _many_ things that ought to succeed but don't that are
beyond the scope of the immediate project. For example a framework
not properly returning a 405 when a method is not allowed, or
returning 405 but then not returning the Allow header.
This feature required switching the base test case from unittest to
testtools. The former has changed (in Python 3.4) the internals of how
expecting failure is handled and as a result making it work with
dynamically generated tests was proving extremely difficult.
An additional shell driven test is provided for coverage of
skip and fail.
If the expected value for a response_header is wrapped in '/'
the value is treated as a regular expression and passed to
`testtools.TestCase.assertRegexpMatches`.
Fixes #6