Move interrupt information to print_boot_information method
calculate the ivars to remove in advance as a set and cache them in a
constant.

`view_assigns` can use the precalculated sets and remove instance
variables without allocating any extra arrays
drop string allocations in the log subscriber
drop one more string allocation
Stop using method missing for singleton delegation.

This saved about 46 array allocations per request on an extremely simple
application.  The delegation happened in the notification subsystem
which is a hotspot, so this should result in even more savings with
larger apps.

Squashed commit of the following:

commit 41eef0d1479526f7de25fd4391d98e61c126d9f5
Author: Aaron Patterson <aaron.patterson@gmail.com>
Date:   Wed Nov 6 16:32:31 2013 -0800

    speed up notifications

commit 586b4a18656f66fb2c518fb8e8fee66a016e8ae6
Author: Aaron Patterson <aaron.patterson@gmail.com>
Date:   Wed Nov 6 16:31:05 2013 -0800

    speed up runtime registry methods

commit b67d074cb4314df9a88438f785868cef77e583d7
Author: Aaron Patterson <aaron.patterson@gmail.com>
Date:   Wed Nov 6 16:28:12 2013 -0800

    change method name and make it public
Moved AS::JSON::DATE_REGEX as it's only used for decoding
Do not expose internal state in the public encoder API (i.e. as_json)

See [1] for why this is not a good idea.

As part of this refactor, circular reference protection in as_json has
been removed and the corresponding error class has been deprecated.

As discussed with @jeremy, circular reference error is considered
programmer errors and protecting against it is out of scope for
the encoder.

This is again based on the excellent work by @sergiocampama in #11728.

[1]: https://github.com/intridea/multi_json/pull/138#issuecomment-24468223
Merge pull request #12785 from chancancode/do_not_leak_internal_state

Do not expose internal state in the public encoder API (i.e. as_json)
Move the JSON extension require statements to the right place.

In #12203, the JSON core extensions were moved into the `core_ext`
folder. Unfortunately, there are some corresponding requires that
were left behind. The problem is partially addressed in #12710, this
commit fixes the rest.
Merge pull request #12792 from chancancode/move_json_requires

Move the JSON extension require statements to the right place.
only ask for these ivars if the target responds to them
Fix AS::TimeWithZone#as_json docs

According to 28ab79d7c579fa1d76ac868be02b38b02818428a
Merge pull request #12771 from bogdan/patch-1

Fix AS::TimeWithZone#as_json docs [ci skip]
Merge pull request #12787 from notalex/extract_method

Extract method refactoring for Rails::Server#start
Aesthetics
add autoload :TransactionState to fix Marshal.load issues
revised changelog comment to be less than 80 chars
Standardize all JSON encoded times to use 3 decimal fractional seconds
Merge pull request #12228 from ersatzryan/standardize-json-time-formats

Standardize all JSON encoded times to use 3 decimal fractional seconds
Merge branch 'master' of github.com:rails/docrails