Renaming FailureReporter back to failureReporter.
Large commit:

 - Adding Attempt equals
 - Adding Either equals
 - Adding Option equals
 - Starting to fix stream tests, which means that the stream tests become async.
 - Adding checkStream to help with stream tests.
 - Exposed generateInputs