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.
Got it. The part I was missing was that `waitUntilDate:` does the unlock/lock business.