New matcher: `have_attributes`

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

This isn't going to work right in a case like this:

``` ruby
person = Person.new("Myron", 32)
expect(person).not_to have_attributes(:name => "Bob", :age => 32)
```

In this case, it will pass but should fail.  As discussed on the original issue, in the negative form, it's an expectation that the object has _none_ of the provided attributes, but your implementation is essentially, `!all? { }`, which will pass as long as at least _one_ of the attributes does not match.

Please add a spec for this as well.