New matcher: `have_attributes`

see: https://github.com/rspec/rspec-expectations/issues/565

@myronmarston @JonRowe @cupakromer /cc

TODO's
- [ ] update README

It's like `respond_to`:

``` ruby
expect(x).not_to respond_to(:foo, :bar)
```

`respond_to` is implemented so that this is treated as a shorter form of:

``` ruby
expect(x).not_to respond_to(:foo)
expect(x).not_to respond_to(:bar)
```

...meaning that if x responds to either `foo` or `bar` (or both), the example will fail.  Likewise, this expectation:

``` ruby
expect(x).not_to have_attributes(:foo => 1, :bar => 2)
```

...should be treated as a shorter form of:

``` ruby
expect(x).not_to have_attributes(:foo => 1)
expect(x).not_to have_attributes(:bar => 2)
```

...meaning that the example will fail if either `x.foo` equals 1 or `x.bar` equals 2.  But as implemented currently, the example will pass as long as one of these attributes does not equal the specified value.

This is how `include`, works, too.  There are other matchers that are the same as well I (but I can't think of the off the top of my head).