Improve response body mismatch error message

If the parsed response body does not match the expected value, the
current output is only really useful in cases where the difference is
readily apparent or the body is small and the difference is in the
outermost object or its child.  Otherwise the user may need to scroll
through large amounts of output and the mismatch may not be visible due
to the depth limit of util.inspect.

To make finding the source of inequality easier for users, make use of
either should or Chai assertions (which print very useful messages in
most test frameworks).  When neither should nor Chai is available,
include the entire object in the output to allow users to find the
inequality when it is not in the outermost object or its child.

Signed-off-by: Kevin Locke <kevin@kevinlocke.name>