Improve failure message when `has_many` is missing

When test driving, writing an expectation such as

```ruby
it { should have_many(:children).through(:relationships).source(:child) }
```

used to provide the not-so-helpful error message

```
Failure/Error: it { should have_many(:children).through(:relationships).source(:child) }

     NoMethodError:

       undefined method `options' for nil:NilClass
```

The improved error message is

```
Expected Parent to have a has_many association called children (no association
called children, children does not have any relationship to relationships,
children should have child as source option)
```
It seems to me that it's not so much that the `:through` is missing from the association, it's that the association doesn't exist.

That should be taken care of by this line: https://github.com/thoughtbot/shoulda-matchers/blob/master/lib/shoulda/matchers/active_record/association_matcher.rb#L845. So by the time we get to this point, the reflection should exist. I wonder why that isn't happening...