Add support for JSON body request matcher

This pull request adds support for a new matcher that compares the body as JSON instead of just a string. This allows for requests to be changed but not break the test when it is the order of the JSON elements that changed and not the semantics of the request.

I wasn't sure if returning false when the body was not parse-able was the appropriate way to handle that scenario, but I did that to prevent parsing errors.

Any feedback would be very appreciated.

I've also written matchers for XML and key-value pairs that I can submit pull requests for. I wasn't sure if these matchers were something you were interested in having in the repository or you preferred developers keep them as custom matchers.