Perf: Don't load the association for #delete_all.

Bug #6289

Conflicts:

	activerecord/test/cases/associations/has_many_associations_test.rb
fix #delete_all with habtm with :delete_sql
Fix HABTM syntax error in Ruby 1.8.x
Merge pull request #6390 from ernie/invalid-ruby18-syntax-in-habtm

Invalid ruby18 syntax in habtm
Merge pull request #5020 from KL-7/fix-blank-image_tag-source

Render img tag with empty src if empty string is passed to image_tag.
Ensure that CollectionAssociation#replace returns proper target

The fix commited in e2a070c was returning the `new_target`, as
a try to return whatever user replaced association with. The
problem is, the resulting association target may be ordered
differently. In such case we want to return the target that
will be later used for that association.
Merge pull request #6398 from pmahoney/threadsafe-connection-pool

Synchronize read and modification of @reserved_connections
Use right option for excerpt text helper in tests, fix build

`excerpt` text helper uses `:radius`, not `line_width` (that is used by
`word_wrap` helper).

Also cleanup some whitespaces.
Fix `validates_uniqueness_off :field, :allow_nil => false`

Closes (#5853)

Uniqueness validator was not properly checking if there are any existing
records, when value was `nil` and column was text type. `nil` was
converted to string, which resulted in queries looking like:

```sql
SELECT 1 FROM "posts" WHERE "posts"."title" = '' LIMIT 1
```

instead of

```sql
SELECT 1 FROM "posts" WHERE "posts"."title" IS NULL LIMIT 1
```
Fix uniqueness validator with `allow_nil: false` also for mysql

MySQL's adapter was changing value for case sensitive comparison. We
don't need to do it for `nil`.
Improve docs for `try` by adding note on `BasicObject`

[ci skip] closes #5790
Prevent concurrent compilation of templates - closes #6400
Fixed tag_helper data-attribute bug with BigDecimals
Merge pull request #6407 from pinetops/565c1b0a0772ac6cf91c77e9285806f7b028614c

Template concurrency fixes
Merge pull request #6410 from Bodacious/tag_helper_data_fix_3-2-stable

TagHelper creates invalid data attributes when value is a BigDecimal
Fix generators to help with ambiguous `ApplicationController` issue

In development mode, dependencies are loaded dynamically at runtime,
using `const_missing`. Because of that, when one of the constants is
already loaded and `const_missing` is not triggered, user can end up
with unexpected results.

Given such file in an Engine:

```ruby
module Blog
  class PostsController < ApplicationController
  end
end
```

If you load it first, before loading any application files, it will
correctly load `Blog::ApplicationController`, because second line will
hit `const_missing`. However if you load `ApplicationController` first,
the constant will be loaded already, `const_missing` hook will not be
fired and in result `PostsController` will inherit from
`ApplicationController` instead of `Blog::ApplicationController`.

Since it can't be fixed in `AS::Dependencies`, the easiest fix is to
just explicitly load application controller.

closes #6413
More info on commit messages in contributing guide

Add more info on how to write a good commit messages along with
example showing nicely formatted commit message.

Rails git history does not look too well when you try to figure out why
particular changes were introduced. We can do much better than that and
it's never too late to start.
Postgresql doesn't accept limits on binary (bytea) columns.
Assets: don't add extension if other given and file exists

We should lookup if asset without appended extension exists.
When sprockets are disabled the asset tag helpers incorporate
this logic. When sprockets are enabled we should have the same
logic.

For example, we have style.ext file in app/assets/stylesheets and
we use stylesheet_link_tag in the layout. In this case we should
have /assets/style.ext instead of /assets/style.ext.css in the
output.

Closes #6310
Merge pull request #6423 from lest/patch-2

assets: don't add extension if other given and file exists