Adds a failWith macro to report a failure.

This is typically used to ensure a code block is never called during
spec validation.
The name of the macros is inspired from the fail_with method of RSpec.

Use case:

[object doSomething:^ (NSArray *array) {
    // Success block
    [[array should] beEmpty];
} failure:^{
    // Failure block.
    failWith(@"the method should not fail in this test");
}];
Renamed failWith macro to fail
Merge branch 'support_for_fail'