Rewrite cache_association code so patchin ActiveRecord is not needed and is less prone to errors (not setting assocation to [nil])