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)
```
```
Failures:

  1) Shoulda::Matchers::ActiveRecord::AssociationMatcher have_many rejects an association that is chained by a missing :through option
     Failure/Error: expect(matcher.failure_message).to match(
     NoMethodError:
       undefined method `options' for nil:NilClass
     # ./lib/shoulda/matchers/active_record/association_matchers/option_verifier.rb:39:in `actual_value_for'
     # ./lib/shoulda/matchers/active_record/association_matchers/option_verifier.rb:54:in `correct_for?'
     # ./lib/shoulda/matchers/active_record/association_matchers/option_verifier.rb:16:in `correct_for_string?'
     # ./lib/shoulda/matchers/active_record/association_matchers/source_matcher.rb:22:in `matches?'
     # ./lib/shoulda/matchers/active_record/association_matcher.rb:898:in `block in failing_submatchers'
     # ./lib/shoulda/matchers/active_record/association_matcher.rb:897:in `reject'
     # ./lib/shoulda/matchers/active_record/association_matcher.rb:897:in `failing_submatchers'
     # ./lib/shoulda/matchers/active_record/association_matcher.rb:892:in `missing_options'
     # ./lib/shoulda/matchers/active_record/association_matcher.rb:834:in `failure_message'
     # ./spec/shoulda/matchers/active_record/association_matcher_spec.rb:335:in `block (3 levels) in <top (required)>'
```