Allow accessing deleted associations

Adds a `with_deleted_associations` method that returns the object in a wrapper that checks all method calls. Those that correspond to associations are modified such that deleted associated records are included in the result.

@bastien please review.
I think if DC started using BasicObject those issues would go away.