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?
Couldn't this be simplified using 

```ruby
unless child_class.method_defined?(after_action_name)
  child_class.class_eval(<<-CODE, __FILE__, __LINE__ + 1)
    after_commit :#{after_action_name}
    after_touch :#{after_action_name}
```