Fix ActiveRecord locking column defaults not getting persisted

When partial inserts are enabled, overridden db defaults are ignored. This
results in locking columns having a nil value for new records if the db default
is null. This happens because the list of changed attributes for new records is
always assumed to be empty.

Solution: When a new record's default attributes are set, also initialize the
list of changed attributes by comparing current values against what's stored as
the column defaults in the database.
Raise an ArgumentError when a clashing named route is defined
Tweak exception message to avoid giving potentially misleading suggestions
Add version method to top level modules
remove references to *::VERSION, replace with *.version
Removed unused loop variable
Add Error#full_message test; Fix typos

Introduce test on Error#full_message for attribute with underscores; Fix
some typos
Delete failing test

I don't think this is testing anything useful, and the test code is
exceedingly brittle. It is broken since
34c7e73c1def1312e59ef1f334586ff2f668246e because the test code makes
assumptions about the implementation of PostgreSQLAdapter#active? which
are incorrect after the commit.

I could fix this test but it would be even more brittle (by stubbing the
underlying @connection.connect_poll) and it doesn't test any complex
logic. I conclude that it's not worth it.
Send SIGTERM, not SIGQUIT.

SIGTERM is the correct signal for a graceful exit.

This will hopefully resolve #9761.
Removed unnecessary block
When we pass id to update_attributes it will try to set new id for that record
Merge pull request #9707 from route/updates_another_record

When strong_parameters had been included, this case of update became possible
StringIO is not required by default in JRuby
test-case to prevent resetting associations when preloading twice.

Conflicts:

	activerecord/lib/active_record/associations/preloader/through_association.rb
	activerecord/test/cases/associations/eager_test.rb
Merge pull request #9872 from senny/test_case_to_prevent_unnecessary_reset

test-case to prevent resetting associations when preloading twice.
Don't kill the console

Use the "quit" command instead. This seems to prevents some weirdness on
OS X. See #9761.
Merge pull request #9871 from arunagw/stringio-require-jruby

StringIO is not required by default in JRuby
Merge pull request #9867 from choudhuryanupam/fix_mysql2_active_schema_test

Removed unnecessary block
Merge pull request #9866 from choudhuryanupam/fix_connection_test

Removed unused loop variable
Remove exception variable from rescue block

Just raising from the rescue block will re-raise the exception, so the
variable is not necessary.