Fix for bug in [NSMutableArray keepIf:]

The following test will fail when two adjacent values do not meet the condition as it will skip an element:

    NSMutableArray *ma = [NSMutableArray arrayWithObjects:@1, @3, @10, nil];

    [ma keepIf:^BOOL(id object) {
        return [object intValue] > 5;
    }];

    if ( ![ma isEqual:@[@10]] )
           XCTFail(@"fail …

The alternative is to go through the array in reverse order though in a way this is less intuitive.