Provide fails_with support for C++11 and OpenMP

This PR adds support for declaring requirements on language standards: for instance C++11 or OpenMP. It does that using the new DSL method `fails_without`, which expands to multiple `fails_with` statements. For instance,

```ruby
fails_without :cxx11
```

Translates to `fails_with` for `:gcc`, `:gcc_4_0`, `:llvm`, `:clang` build 421 and earlier, and GCC 4.7 and earlier.

Please let me know if you have any suggestions on naming. I had considered placing this in `depends_on`, but unfortunately the dependency expansion code happens outside the formula context so I don't think that's possible.

To support that, the PR also adjusts the fails_with syntax for non-GCC compilers to be more flexible and more like the Apple compilers. It now comes in the format:

```ruby
fails_with :gcc => '4.8' do
  release '4.8.0'
end
```

I don't think the old syntax was in use anywhere yet, and GCC support is still marked as experimental, so this shouldn't break anything.