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
Tidying up some require : removing useless sort and homogenizing with the rest of the code the wat the includes are done
Update other counter caches on destroy
Merge pull request #7706 from iangreenleaf/multiple_counter_caches

Update other counter caches on destroy
Fix copy table index test; Change == to ! on false in travis.rb
Add version method to top level modules
remove references to *::VERSION, replace with *.version
Merge pull request #9847 from vipulnsward/fix_sqlite_test

Fix copy table index test; Change == to ! on false in travis.rb
Merge pull request #9836 from Intrepidd/tidy-require

Tidying up some require and removing overhead caused by sorting
Adding a bang to method name of raise_on_type_mismatch.
Merge pull request #9853 from wangjohn/adding_bang_to_raise_method

Adding a bang to method name of raise_on_type_mismatch.
Allows setting fixture_path to a Pathname
Merge pull request #9861 from pivotalcommon/master

Allow fixture_path to be a Pathname
Change Standard error when is required bcrypt-ruby and fails
Merge pull request #9863 from robertomiranda/require-bcrypt-ruby

Change Standard error when is required bcrypt-ruby and fails
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.