standardize database_configuration to a hash

make connection_url_to_hash a class method

This als prevents loading database.yml if it doesn't exist
but DATABASE_URL does
test DATABASE_URL without database.yml around
run the load_structure test in the test environment
update changelog
move config.assets.precompile into config/application.rb
Merge pull request #9120 from hone/db_migrate_with_database_url

fix rake db:migrate when used with ENV['DATABASE_URL']
Reduced memory leak problem in transactions by lazily updating AR objects with new transaction state. If AR object has a callback, the callback will be performed immediately (non-lazily) so the transaction still has to keep records with callbacks.
Added comments about the check_empty_arguments method which is called
for query methods in a where_clause. Also, modified the CHANGELOG entry
because it had false information and added tests.
Merge pull request #9341 from senny/move_precompiled_asset_config_to_application

move config.assets.precompile into config/application.rb
Merge pull request #9068 from wangjohn/transaction_callback_patch

Reduced memory leak problem in transactions by lazily updating AR objects
make type_cast_value a class level method
Merge pull request #9342 from hone/db_migrate_with_database_url

Fix ActiveRecord::ConnectionAdapters::ConnectionSpecification::ResolverTest
Merge pull request #9332 from wangjohn/adding_documentation_to_error_raising_in_query_methods

Tests to make sure empty arguments in WhereChain raise errors
reserve index name chars for internal rails operations

Some adapter (SQLite3) need to perform renaming operations to support
the rails DDL. These rename prefixes operate with prefixes. When an
index name already uses up the full space provieded by
`index_name_length` these internal operations will fail. This patch
introduces `allowed_index_name_length` which respects the amount of
characters used for internal operations. It will always be <=
`index_name_length` and every adapter can define how many characters
need to be reserved.
reserve less chars for internal sqlite3 operations
Merge pull request #8613 from senny/8264_character_limit_for_indices

deal with long index names and internal sqlite3 operations
revises the documentation of AR::Base.cache_timestamp_format [ci skip]
moves the new :nsec date format to the Active Support changelog [ci skip]
also rename indexes when a table or column is renamed

When a table or a column is renamed related indexes kept their name. This will lead to confusing names. This patch renames related indexes when a column or a table is renamed. Only indexes with names generated by rails will be renamed. Indexes with custom names will not be renamed.
Merge pull request #8645 from senny/rename_index_on_rename_column

also rename indexes when a table or column is renamed