`CollectionAssociation#empty?` respects newly builded records
Refactor predicate builder when receiving empty hash

There's no need to create a new arel table or reflect on the column
association if the value is empty, these attributes are not used.

Also no need to concat a new array, just append the query value.
iterates the RDoc of update_column(s)

This revision makes crystal clear that the methods go
straight to the database and update the receiver. It
also adds and example, and removes the duplication
in the singular and plural forms by referring one to
the other.
use tap with block parameter
script => bin
s/it's/its/

[ci skip]
Merge pull request #8912 from senny/8879_association_empty_method

`CollectionAssociation#empty?` respects newly builded records
CollectionProxy should be default scoped

Fixes #8795
Undeprecate the :extend option

Suggested by @dhh.

It doesn't affect the generated SQL, so seems reasonable to continue to
allow it as an association option.
User Rails 4 find_by
Merge pull request #8989 from robertomiranda/use-rails-4-find-by

Replace deprecated find_by_* with find_by
Revert "Merge pull request #8989 from robertomiranda/use-rails-4-find-by"

This reverts commit 637a7d9d357a0f3f725b0548282ca8c5e7d4af4a, reversing
changes made to 5937bd02dee112646469848d7fe8a8bfcef5b4c1.
MiniTest already defines a ParallelEach class

This may or may not fix the intermittent railties failures we've been
seeing on the CI with Ruby 2.0. We'll see.
The test setup is not threadsafe. Wrap in a mutex.