Handle body streams

@macdrevx @jnjosh Please review.

Turns out you can actually convert an NSURLRequest's HTTPBodyStream into an NSData object
by making a mutable copy of the URL request and then reading its stream as normal. We now
do this inside UMKMockHTTPRequest to fetch the body of a request and do normal comparisons.

This pull request also adds the ability to turn off body checking, and adds some convenience
classes/functions for testing sessions and generating random errors.
How does `_complete` ever get set while waiting? I'll need you to clarify how `NSCondition` works.