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?
use destructive sort on array in Hash#to_param for performance gains.
Check https://gist.github.com/vipulnsward/6aad158c06a22f931a71 to see the gains.
use canonical #controller_path logic in controller test cases
Fix typo in documentation comment
Merge pull request #10480 from juno/fix-typo

Fix typo in documentation comment [ci skip]
Merge pull request #10453 from vipulnsward/destructive_sort

Speed up Hash#to_param by switching from #sort to #sort!
Allow fetching multiple values from the cache at once

Add a simple API for fetching a list of entries from the cache, where
any missing entries are computed by a supplied block.
Instrument template compilation
remove unused variable
Merge pull request #10486 from vipulnsward/remove_variable

remove unused variable
raise IrreversibleMigration if no column given

fixes #10419

Following code should raise  IrreversibleMigration. But the code was
failing since options is an array and not a hash.

def change
  change_table :users do |t|
    t.remove_index [:name, :email]
  end
end

Fix was to check if the options is a Hash before operating on it.
Merge pull request #10437 from neerajdotname/10419

raise IrreversibleMigration if no column given
let rake tasks be robust to a missing RDoc in Rubinius [Fixes #10462]

See the comment in the rescue clause towards the top of the patch for the rationale.
fix failing test caused by 3771e4d511
Merge pull request #10488 from neerajdotname/10419-b

fix failing test caused by 3771e4d511
Fix bug in ActiveRecord::Sanitization#sanitize_sql_hash_for_conditions

Fixing CHANGLOG description

Remove extra line.

Remove blank lines.
Merge pull request #10352 from zohlgren/fix_activerecord_sanitization_sanitize_sql_hash

Fix bug in ActiveRecord::Sanitization#sanitize_sql_hash_for_conditions
Fix test asserting the sanitized SQL hash differently to some adapters
Confirm a record has not already been destroyed before decrementing
counter cache

At present, calling destroy multiple times on the same record results
in the belongs_to counter cache being decremented multiple times. With
this change the record is checked for whether it is already destroyed
prior to decrementing the counter cache.
Merge pull request #10478 from cainlevy/patch-1

use canonical #controller_path logic in controller test cases