In i18n gem, the following methods are defined.
- `Hash#except`
- `Hash#slice`
But if there are defined already, i18n skips these definitions.
So these definition by `active_support` are required before `require 'i18n'`.
In `i18n` gem, the method definition of `Hash#deep_merge!` is skipped
when it is already defined.
- warning: method redefined; discarding old deep_merge!
add lazy_load_hooks.rb, which allows us to declare code that
should be run at some later time. For instance, this allows
us to defer requiring ActiveRecord::Base at boot time purely
to apply configuration. Instead, we register a hook that should
apply configuration once ActiveRecord::Base is loaded.
With these changes, brings down total boot time of a
new app to 300ms in production and 400ms in dev.
TODO: rename base_hook