Fix invalid parent cache invalidation

A relation embedded in 2 parents would only clear the cache in one of them.

Embedding twice an object would override `expire_parent_cache` and only the latest embedding parent would be cleared on child change.

This PR keeps these callback with unique names to prevent that clash.

@dylanahsmith What do you think?
I'm tempted to suggest extracting the `after_action_name` to a "callback object" like the `EncryptionWrapper` example in http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html, but that may be more effort than it is worth to ensure uniqueness. The main advantage is removing the metaprogramming & pollution of the including classes' public APIs.

I think this would look something like:
```ruby
expirer = ParentModelExpirer.new(options[:inverse_name].to_sym, '#{foreign_key}', self, options[:only_on_foreign_key_change)
child_class.after_commit expirer
child_class.after_touch expirer
child_class.add_parent_expiration_entry expirer
```

And:
```ruby
class ParentModelExpirer
  def initialize(parent_name, foreign_key, parent_class, only_on_foreign_key_change)
    @parent_name, @foreign_key, @parent_class, @only_on_foreign_key_change = parent_name, foreign_key, parent_class, only_on_foreign_key_change
  end

  def expire_parent_cache(record)
    # extract code from IdentityCache::ParentModelExpiration
  end

  alias_method :after_touch, :expire_parent_cache
  alias_method :after_save, :expire_parent_cache
end
```