Add test for persisting inverse keys for HABTM substitution

## Setup
```ruby 
class Post
  include Mongoid::Document

  has_and_belongs_to_many :tags
end

class Tag
  include Mongoid::Document

  has_and_belongs_to_many :posts
end

tag = Tag.create
post = Post.create(tags: [tag])
post.tags = [Tag.last]
```

## Expected Behavior
```ruby
post.tag_ids #=> [tag.id]
tags.post_ids #=> [post.id]
```

## Actual Behavior
```ruby
post.tag_ids #=> [tag.id]
tag.post_ids #=> []
```

Commit has a failing test in the `many_to_many_spec.rb`, but we aren't sure how to fix with out breaking other functionality.