Change ActionController::Parameters#require behavior when value is empty
When the value for the required key is empty an ActionController::ParameterMissing is raised which gets caught by ActionController::Base and turned into a 400 Bad Request reply with a message in the body saying the key is missing, which is misleading.

With these changes, ActionController::EmptyParameter will be raised which ActionController::Base will catch and turn into a 400 Bad Request reply with a message in the body saying the key value is empty.
Fix doc in Postgres database creation
add active model basics wip to guides/documents.yaml
support :unless_exist for FileCache
allow to test AR master against AR-JDBC master (with `ENV['AR_JDBC']`)
`export AR_JDBC=true` on travis-ci as a *before_install* (but on jruby only)
Moved all JSON core extensions into core_ext/object/json

TL;DR The primary driver is to remove autoload surprise.

This is related to #12106. (The root cause for that ticket is that
json/add defines Regexp#to_json among others, but here I'll reproduce
the problem without json/add.)

Before:

   >> require 'active_support/core_ext/to_json'
   => true
   >> //.as_json
   NoMethodError: undefined method `as_json' for //:Regexp
     from (irb):3
     from /Users/godfrey/.rvm/rubies/ruby-2.0.0-p195/bin/irb:16:in `<main>'
   >> //.to_json
   => "\"(?-mix:)\""
   >> //.as_json
   => "(?-mix:)"

After:

   >> require 'active_support/core_ext/to_json'
   => true
   >> //.as_json
   => "(?-mix:)"

This is because ActiveSupport::JSON is autoloaded the first time
Object#to_json is called, which causes additional core extentions
(previously defined in active_support/json/encoding.rb) to be loaded.

When someone require 'active_support/core_ext', the expectation is
that it would add certain methods to the core classes NOW. The
previous behaviour causes additional methods to be loaded the first
time you call `to_json`, which could cause nasty surprises and other
unplesant side-effects.

This change moves all core extensions in to core_ext/json. AS::JSON is
still autoloaded on first #to_json call, but since it nolonger
include the core extensions, it should address the aforementioned bug.

*Requiring core_ext/object/to_json now causes a deprecation warnning*
prevent global timezone state from leaking out of test cases.
Merge pull request #12633 from senny/no_more_time_zone_leaks

prevent global timezone state from leaking out of test cases.
only warn on leaked time zone state instead of rasing an error.

Raising `RuntimeErrors` skips important cleanup code and leads to
a lot of subsequent errors. This clutters the test output with a lot
of noise.
prevent `time_zone_aware_attributes` test leak. follow-up to #12633.
Merge pull request #12643 from severin/pg_cast_json_on_write

cast json values on write to be consistent with reading from the db.
Fixed typo with after_commit docs

Fixed syntax error on `after_commit` docs
Merge pull request #12648 from chrisledet/patch-1

Fixed typo with after_commit docs
Remove surprise if from show_exception middleware

This increase the readability within the rescue block.
Merge pull request #12655 from rails/ps-remove-surprise-if-in-show-exception-middleware

Remove surprise if from show_exception middleware
don't mutate hash with fetch
Merge pull request #12656 from dougcole/fix_strong_parameters_fetch

don't let StrongParameters mutate the hash with fetch
added schema_migrations_table_name to ActiveRecord::Base in order that the name of the schema migrations table can be configured.

consolidated test_schema_migrations_table_name tests

Added changelog entry

edited changelog

removed commented lines

removed reader

ensure the schema migrations table is reset at end of test

added entry to configuration guide

guides typo and changelog order
Add a changelog entry for #12656 [ci skip]