[WIP] Audit mode specs

@tyler-ball Here's my work so far on unit tests for audit mode (I have another big file in flight, should be done tomorrow AM). What do you think so far?

\cc @sersut 
I think I grok.  Audit data really only cares that there is a duck type which has `to_hash` defined so its not worth `instance_double`ing it.

But `instance_double` is really useful if I am passed a class that I don't know anything about.  In that case I rely on the public API of the class I am passed - hence, instance_double keeps me from mocking out a method that no longer exists.