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.

Meant to address #81 and #82.

@jcredding ready for review.  Like we discussed, I don't love the assumptions and overhead this incurs.  I'm going to do an alternate PR where the test runner just serializes to BSON for you (thereby alerting developers of sanitization errors and then assuming they will go fix them).