Add `with_primary_key` to AssociationMatchers

This adds `with_primary_key` to `AssociationMatchers` so you can now test the `:primary_key` option of an association.
These methods are awkwardly named.

What if we combined the checks on `macro` into one method (`macro_supports_primary_key?`, perhaps?), then here we said `macro_supports_primary_key? && !class_has_primary_key?(model_class)`?