Specify type of singular association during serialization

When serialising a class, specify the type of any singular associations, if
necessary. Rails already correctly specifies the :type of any enumerable
association (e.g. a has_many association), but made no attempt to do so for
non-enumerables (e.g. a has_one association).
We must specify the :type of any STI association. A has_one
association to a class which uses single-table inheritance is an example of
this type of association.

Fixes #7471
Merge pull request #8352 from steveklabnik/update_7858

Specify type of singular assication during serialization
Ensure that associations have a symbol argument.

Fixes #7418.
Merge pull request #8355 from steveklabnik/update_7418

Ensure that associations have a symbol argument.
Fix documentation for String#mb_chars.

This documentation has been out of date.
Simplify String#mb_chars and stop proxying #class

This behavior mattered under Ruby 1.8, but that doesn't matter now
that we don't support it.

In addition, we don't want to proxy the #class method. A test was added
to prevent against regressions.
Merge pull request #8261 from steveklabnik/fix_mb_chars

Simplify String#mb_chars and fix documentation.
Remove observers and sweepers

They was extracted from a plugin.

See https://github.com/rails/rails-observers

[Rafael Mendonça França + Steve Klabnik]
Gracefully handle upgrading apps with observers

Rather than just raising a NoMethodError when copying the config, this
commit adds a warning message until either the rails-observers gem is
installed or the relevant config options are removed.
Merge branch 'extract_observers'
Fix typo in the Observers deprecation message. [ci skip]
Merge pull request #8361 from lucasmazza/typo

Fix typo in the Observers deprecation message.
added examples when options is string
Add CHANGELOG entries for the observes extraction

[ci skip]
Add #seconds_until_end_of_day to DateTime and Time
Merge pull request #7961 from exviva/seconds_until_end_of_day

Add #seconds_until_end_of_day to DateTime and Time
Added STI support to init and building associations

Allows you to do BaseClass.new(:type => "SubClass") as well as
parent.children.build(:type => "SubClass") or parent.build_child
to initialize an STI subclass. Ensures that the class name is a
valid class and that it is in the ancestors of the super class
that the association is expecting.
add list of extracted plugins to rails4 guide
augment the rails4 guide with links to PRs
Merge pull request #8356 from senny/add_links_to_rails4_guide

augmented the Rails 4 guides with links back to Github