Handle other pk types in PostgreSQL gracefully.

In #10410 it was noted that you can no longer create PK's with the
type of bigserial in PostgreSQL in 4.0.0.rc1. This is mostly
because the newer adapter is checking for column type with the
id column instead of just letting it pass through like it did
before.

Side effects:
You may just create a PK column of a type that you really don't
want to be your PK. As far as I can tell this was allowed in 3.2.X
and perhaps an exception should be raised if you try and do
something extremely dumb.
Test that #fresh_when accepts an array

https://github.com/rails/etagger/pull/3
Merge pull request #10455 from patricksrobertson/bigserial_id_not_identifying_pk

Add PK constraint on bigserial ID columns on postgres adapter
Revert "Merge pull request #10455 from patricksrobertson/bigserial_id_not_identifying_pk"

This reverts commit 3043d45eefc3776d5f3a9e7d212a01f99d869ef8, reversing
changes made to ca0275d36b395631725c4583db5a45c06443fdb9.
fix issue #10502, do not recompute method name for already-stringified object filter
add changelog entry for fix-10502-skip-object-filter
Remove current_adapter? from test_sanitize_sql_hash_handles_associations

Because of each adapter implementation differences,
`expected_value` string needed to be handled by each adapter.
This commit removes current_adapter
by using ActiveRecord::ConnectionAdapters::Quoting methods.
Merge pull request #10506 from seanwalbran/fix-10502-skip-object-filter

fix issue #10502, do not recompute method name for already-stringified object callback filter
Created a method to automatically find inverse associations and cache
the results. Added tests to check to make sure that inverse associations are
automatically found when has_many, has_one, or belongs_to associations
are defined.
Merge pull request #9522 from wangjohn/automatic_search_for_association_inverses

Finding inverse associations automatically
Fix Typo existant -> existent [ci skip]
Merge pull request #10511 from prathamesh-sonpatki/existent

Fix Typo existant -> existent [ci skip]
dependency ActiveSupport::Deprecation
Merge pull request #10519 from eiel/dependency-core_ext-hash-diff

dependency ActiveSupport::Deprecation
Use ruby's Encoding support for tidy_bytes

The previous implementation was quite slow. This leverages some of the
transcoding abilities built into Ruby 1.9 instead. It is roughly 96%
faster.

The roundtrip through UTF_8_MAC here is because ruby won't let you
transcode from UTF_8 to UTF_8. I chose the closest encoding I could
find as an intermediate.
adding test to demonstrate inconsistencies in the AS::Callbacks api
refactor tests for more points
adding more tests around callback inconsistencies
Merge pull request #10521 from yahonda/sanitize_oracle

Remove current_adapter? from test_sanitize_sql_hash_handles_associations
Merge pull request #10355 from burke/master

Use Ruby's native Encoding functionality to implement `tidy_bytes`