Updates reset_counters to allow counter name in params

Add support for counter name to be passed as parameter
on `CounterCache::ClassMethods#reset_counters`. This is
to be consistent with the other methods in the module
that all accept counter name.
Document method visibility for designing API docs. [ci skip]

cc https://github.com/rails/rails/issues/14848#issuecomment-41198795
Merge pull request #14428 from jnormore/reset_counters_alias

Updates reset_counters to allow counter name in params
Remove dead test code for unsupported adapters
Merge pull request #15137 from sgrif/sg-remove-dead-code

Remove dead test code for unsupported adapters
Add a type object to Column constructor

Part of #15134. In order to perform typecasting polymorphically, we need
to add another argument to the constructor. The order was chosen to
match the `oid_type` on `PostgreSQLColumn`.
Merge pull request #15151 from sgrif/sg-add-type-to-column

Add a type object to Column constructor
Delegate `Column#type` to the injected type object

The decision to wrap type registrations in a proc was made for two
reasons.

1. Some cases need to make an additional decision based on the type
  (e.g. a `Decimal` with a 0 scale)
2. Aliased types are automatically updated if they type they point to is
  updated later. If a user or another adapter decides to change the
  object used for `decimal` columns, `numeric`, and `number` will
  automatically point to the new type, without having to track what
  types are aliased explicitly.

`OID::Type#infinity` was moved to `Type::Value` in order to avoid having
all postgres types inherit from a postgres specific superclass. I'd like
to move it back to only types that care about it as part of the larger
refactoring.

Everything else here should be pretty straightforward. PostgreSQL ranges
had to change slightly, since the `simplified_type` method is gone.
Add nodoc