Merge pull request #9007 from dpree/master

Enhanced tests for AbstractController::Translation module
In Browser Path Matching with Javascript

When debugging routes ,it can sometimes be difficult to understand exactly how the paths are matched. This PR adds a JS based path matching widget to the `/rails/info/routes` output. You can enter in a path, and it will tell you which of the routes that path matches, while preserving order (top match wins).

The matching widget in action:

![](http://f.cl.ly/items/3A2F0v2m3m1Z1p3P3O3k/path-match.gif)

Prior to this PR the only way to check matching paths is via mental math, or typing in a path in the url bar and seeing where it goes. This feature will be an invaluable debugging tool by dramatically decreasing the time needed to check a path match. 

ATP actionpack
Remove extra sort from test

Cleanup change_schema tests to remove extra sorts on columns.
Fix setting expected value in translation tests

It was being set to nil instead due to the wrong assignment.
Merge pull request #9010 from vipulnsward/remove_extra_sort_from_test

Remove extra sort from test
Merge pull request #9001 from schneems/schneems/routes-path-js

In Browser Path Matching with Javascript
Standardise the return value of `to_time`

This commit standardises the return value of `to_time` to an instance
of `Time` in the local system timezone, matching the Ruby core and
standard library behavior.

The default form for `String#to_time` has been changed from :utc to
:local but research seems to suggest the latter is the more common form.

Also fix an edge condition with `String#to_time` where the string has
a timezone offset in it and the mode is :local. e.g:

  # Before:
  >> "2000-01-01 00:00:00 -0500".to_time(:local)
  => 2000-01-01 05:00:00 -0500

  # After:
  >> "2000-01-01 00:00:00 -0500".to_time(:local)
  => 2000-01-01 00:00:00 -0500

Closes #2453
Use `DateTime.parse` inside `String#to_datetime`

Use the standard library's `DateTime.parse` because it's marginally
faster and supports partial date/time strings.

Benchmark:
       user     system      total        real
old  3.980000   0.000000   3.980000 (  3.987606)
new  3.640000   0.010000   3.650000 (  3.641342)
Added AR integration tests for form helpers
Merge pull request #9014 from virusman/form_helpers_ar_tests

AR integration tests for form helpers
Merge pull request #8671 from xuanxu/fix_irregular

Inflector irregular singularize rules
adding comma to separate clauses
slices less, reads better
resistance is futile
Duplicate possible frozen string from route

Ruby 1.9 freezes Hash string keys by default so where a route is
defined like this:

  get 'search' => 'search'

then the Mapper will derive the action from the key. This blows up
later when the action is added to the parameters hash and the
encoding is forced.

Closes #3429
Refactored transaction state into its own object. Each transaction creates a new transaction state object upon initialization.
Merge pull request #9011 from wangjohn/activerecord_transaction_state

Refactored TransactionState into its own class
document how to create custom rails environments
Merge pull request #9019 from senny/doc_custom_rails_env

document how to create custom rails environments
copy-edits 7e6e4f2 [ci skip]

Capitalization in the title of the section, enumerates the environments
in the usual order, adds a paragraph, and tries to use less "you"s.