Add foreign_type option for polymorphic has_one and has_many association.

To be possible to use a custom column name to save/read the polymorphic
associated class in a has_many or has_one polymorphic association, now users
can use the option :foreign_type to inform in what column the associated class
name will be saved.

The issue [2822](https://github.com/rails/rails/issues/2822) is associated to this change.

I created a self contained [gist](https://gist.github.com/ulissesalmeida/80c54b03b96d9201928f) that shows what I tried to do.
Now I've understand the difference between `@foreign_type` and `@type`. The `@foreign_type` is used on `belongs_to` association, and `@type` on `has_many` associations.

When you do:

```ruby
belongs_to :taggable, polymorphic: true
# @foreign_type is 'taggable_type'

has_many :taggings, as: :taggable
# @type is 'taggable_type'
```