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
Merge pull request #6418 from pwnall/pgsql_bytea_limit3

Postgresql doesn't accept limits on binary (bytea) columns (for 3-2-stable)
Use require_dependency in generated controllers

Using require in development mode will prevent required files from
reloading, even if they're changed. In order to keep namespaced
application_controller reloadable, we need to use require_dependency
instead of require.
Restore the frozen state on rollback. Fixes #6417.

This is a 3-2-stable backport for #6420 which was merged into master.

Currently, when saving a frozen record, an exception would be thrown
which causes a rollback. However, there is a bug in active record that
"defrost" the record as a side effect:

    >> t = Topic.new
    => #<Topic id: nil, ...>
    >> t.freeze
    => #<Topic id: nil, ...>
    >> t.save
    RuntimeError: can't modify a frozen Hash
    >> t.frozen?
    => false
    >> t.save
    => true

This patch fixes the bug by explictly restoring the frozen state on the
attributes Hash after every rollback.
Merge pull request #6445 from chancancode/3-2-stable_restore_frozen_state_on_rollback

Restore the frozen state on rollback. (Backports #6420)
Fixes the build break caused by 9ee8528 in #6445.

Ruby 1.8 raises a TypeError when trying to modify a frozen Hash, while
Ruby 1.9 raises a RuntimeError instead. Also, Ruby < 1.9.3 uses a
lowercase 'hash' in the exception message while Ruby >= 1.9.3 uses an
uppercase 'Hash' instead. This commit normalizes those issues in the
test case.
Merge pull request #6451 from chancancode/3-2-stable_restore_frozen_state_on_rollback

Fixes the build break caused by 9ee8528 in #6445.