Moves column dump specific code to a module included in AbstractAdapter

Having column related schema dumper code in the AbstractAdapter. The
code remains the same, but by placing it in the AbstractAdapter, we can
then overwrite it with Adapter specific methods that will help with
Adapter specific data types.

The goal of moving this code here is to create a new migration key for
PostgreSQL's array type. Since any datatype can be an array, the goal is
to have ':array => true' as a migration option, turning the datatype
into an array. I've implemented this in postgres_ext, the syntax is
shown here: https://github.com/dockyard/postgres_ext#arrays

Adds array migration support

Adds array_test.rb outlining the test cases for array data type
Adds pg_array_parser to Gemfile for testing
Adds pg_array_parser to postgresql_adapter (unused in this commit)

Adds schema dump support for arrays

Adds postgres array type casting support

Updates changelog, adds note for inet and cidr support, which I forgot to add before

Removing debugger, Adds pg_array_parser to JRuby platform

Removes pg_array_parser requirement, creates ArrayParser module used by
PostgreSQLAdapter
Fix find_in_batches with customized primary_key
Merge pull request #7652 from toshi-kawanishi/find_in_batches

Fix find_in_batches with customized primary_key
Don't explain except normal CRUD sql.
Merge pull request #7657 from kennyj/fix_6458-2

Don't explain except normal CRUD sql.
set up config_accessor with a default value by block

* ActiveSupport::Configurable should allow config_accessor to take
  default value by block, just like cattr_accessor.

    class User
      include ActiveSupport::Configurable
      config_accessor :hair_colors do
        [:brown, :black, :blonde, :red]
      end
    end

    User.hair_colors # => [:brown, :black, :blonde, :red]

* remove trailing whitespaces in configurable.rb and its test file.

* Update ActiveSupport CHANGELOG.
Merge pull request #7645 from larrylv/configurable-defaults

Set up config_accessor with a default value by block
Don't preserve SELECT columns on COUNT

The COUNT clause of a finder_sql relationship is being rewritten from
COUNT(*) to COUNT(table_name.*). This does not appear to be valid syntax
in MySQL:

```
mysql> SELECT COUNT( table_name.* ) FROM `table_name`;
ERROR 1064 (42000): You have an error in your SQL syntax; check the
manual that corresponds to your MySQL server version for the right
syntax to use near '* ) FROM `table_name`' at line 1
```

This fixes the bug, as well as adding tests so we don't re-introduce
it in the future.

Fixes #3956.
Merge pull request #7651 from steveklabnik/issue_3956

Don't preserve SELECT columns on COUNT

Closes #7651
Remove debug code :bomb:
Merge pull request #7547 from danmcclain/pg-arrays

Adds migration and type casting support for PostgreSQL Array datatype
improve AR/CHANGELOG [ci skip]
Merge pull request #7662 from frodsan/ar_changelog

improve AR/CHANGELOG [ci skip]
Add missing entries in AP changelog
Integrate ActionController::Parameters from StrongParameters gem
Integrate ActiveModel::ForbiddenAttributesProtection from StrongParameters gem
Remove MassAssignmentSecurity from ActiveModel

This will be moved out to protected_attributes gem
Remove mass assignment security from ActiveRecord
Add tests for ForbiddenAttributesProtection in ActiveRecord
Change AMo::ForbiddenAttributesProtection tests to use a subclass of Hash instead of monkey patch permitted? method in regular hashes