Escape multibyte line terminators in JSON encoding

Currently, json/encoding respects the JSON spec (as it should) which 
disallows \n and \r inside strings, escaping them as expected.

Unfortunately, ECMA-262 (Javascript) disallows not only \n and \r in 
strings, but "Line Terminators" which includes U+2028 and U+2029. 
See here: http://bclary.com/2004/11/07/#a-7.3

This pull request adds U+2028 and U+2029 to be escaped.

# Why? 

It's very common to see something like this in a Rails template:

<script type="text/javascript"> 
var posts = <%= @posts.to_json %>;
</script>

If U+2028 or U+2029 are part of any attributes output in the to_json
call, you will end up with an exception.
In Chrome: Uncaught SyntaxError: Unexpected token ILLEGAL 

# Why not?

This is JSON encoding, and the JSON spec is specific about how to 
encode strings. U+2028 and U+2029 don't get special treatment.

Just trying to start a discussion... what do you do in your apps
to deal with this? Is there a convention I'm missing?
fix HashWithIndifferentAccess#to_hash behaviour
Rails 4 has deprecated :order in has_many to use a lambda instead, update the guide accordingly
Fix typo "can exploited" with "can be exploited"
Add a few overview bullet points
Clean up the wording in a few places
Use faster Array.new instead of []*padding
Fix typo in test
document String#to_time exception
Fixes Dependency bug in Active Support

DateTime defined in date.rb
destroys association records before saving/inserting new association records

fixes bug introduced by  #3329
These are the conditions necessary to reproduce the bug:
- For an association, autosave => true.
- An association record is being destroyed
- A new association record is being created.
- There is a unique index one of the association's fields.
- The record being created has the same value as the record being
destroyed on the indexed field.

Before, the deletion of records was postponed until after all
insertions/saves.  Therefore the new record with the identical value in
the indexed field caused a non-unique value error to be thrown at the database
level.

With this fix, the deletions happen first, before the insertions/saves.
Therefore the record with the duplicate value is gone from the database
before the new record is created, thereby avoiding the non-uniuqe value
error.
Merge pull request #10414 from eiel/fix_dependency

Fixes Dependency bug in Active Support
Merge pull request #10412 from vipulnsward/fix_callback_test_typo

Fix typo in test
Add test for `AR::Base#to_param`

According to the doc of `AR::Base#to_param`(
https://github.com/rails/rails/blob/04cda1848cb847c2bdad0bfc12160dc8d554
7775/activerecord/lib/active_record/integration.rb#L18 ), it returns
`nil` if the record is not persisted.
fix typo
Merge pull request #10416 from tkhr/add-test-for-AR--Base#to_param

Add test for `AR::Base#to_param`
rake:db:test:prepare falls back to original environment after execution.
Refactoring the creation of TestTasks to remove code duplication.
Add styling to h1
Merge pull request #10423 from wangjohn/refactoring_testing_rakefile

Refactoring the creation of TestTasks to remove code duplication.