test runner raises custom exception if given an invalid handler class

This updates the test runner to validate its given handler class
includes `Sanford::ServiceHandler`.  This main reason for this is
that if you forget to include, the default error is some cryptic
argument error.  This makes it so that instead of a cryptic error,
you get a very specific error that tells you what the problem is.

I've only added this logic to the test runner to not add the overhead
of this check to every live request.
Merge pull request #87 from redding/kr-test-runner

test runner raises custom exception if given an invalid handler class
recursively sanitize response objects

BSON fails to serialize on certain data types, specifically Date
and DateTime.  This sanitizes all response datas to prevent BSON
serialization failures.

Note, this assumes a lot on behalf of the user.  Particularly about
how to convent values that need sanitizing.  Plus you incure the
sanitization overhead on _every_ response, whether sanitation is
needed or not.