Fixes "Cannot visit ..." with validates_uniqueness_of

Fixes issue with overrding ActiveRecord reader methods with a
composed object and using that attribute as the scope of a
validates_uniqueness_of validation.
Fix class_eval without __FILE__ and __LINE__.
Merge pull request #7072 from beerlington/fix_validations_with_scope

Use database value for uniqueness validation scope
Merge pull request #7076 from kennyj/fix_class_eval

Fix class_eval without __FILE__ and __LINE__.
Add support for optional root segments containing slashes

Optional segments with a root scope need to have the leading slash
outside of the parentheses, otherwise the generated url will be empty.
However if the route has non-optional elements then the leading slash
needs to remain inside the parentheses otherwise the generated url
will have two leading slashes, e.g:

Blog::Application.routes.draw do
  get '/(:category)', :to => 'posts#index', :as => :root
  get '/(:category)/author/:name', :to => 'posts#author', :as => :author
end

$ rake routes
  root GET /(:category)(.:format)              posts#index
author GET (/:category)/author/:name(.:format) posts#author

This change adds support for optional segments that contain a slash,
allowing support for urls like /page/2 for the root path, e.g:

Blog::Application.routes.draw do
  get '/(page/:page)', :to => 'posts#index', :as => :root
end

$ rake routes
root GET /(page/:page)(.:format) posts#index

Fixes #7073
Add join table migration generator

For instance, running

    rails g migration CreateMediaJoinTable artists musics:uniq

will create a migration with

    create_join_table :artists, :musics do |t|
      # t.index [:artist_id, :music_id]
      t.index [:music_id, :artist_id], unique: true
    end
AR::Integration must be included after AM::Conversion

Integration's definition of #to_param must override
Conversion's. Otherwise, there is a regression from
3.1 in the behavior of a non-persisted AR::Base instance
which nevertheless has an id.
Merge pull request #7081 from jfirebaugh/to_param_regression_master

AR::Integration must be included after AM::Conversion
Common behavior with adding formats to lookup_context for TemplateRenderer and PartialRenderer
Merge pull request #6626 from route/render_formats

Add additional formats to lookup context
Merge pull request #7028 from lexmag/join_table_indexes

Add indexes to create_join_table method
add lazy look up in abstract controller's translate method
Merge pull request #7082 from jalkoby/lazy_lookup_in_abstract_controller

add lazy look up in abstract controller's translate method
Don't use default separator

When the default separator is set logger will create incorrect output
Update changelog for migration generator change
Merge pull request #7084 from LTe/logger_default_separator

Don't use default separator in tagged logger
Remove `:confirm` in favor of `:data => { :confirm => 'Text' }` option

This applies to the following helpers:
`button_to`
`button_tag`
`image_submit_tag`
`link_to`
`submit_tag`
Merge pull request #6614 from carlosgaldino/data-confirm

Remove `:confirm` in favor of `:data => { :confirm => 'Text' }` option
revert Default timestamps to non-null

Commit 3dbedd2 added NOT NULL constraints to timestamps.
Commit fcef728 started to revert this, but was incomplete.
With this commit, 3dbedd2 should be fully reverted and
timestamps will no longer default to NOT NULL.
Merge pull request #7095 from davekaro/master

revert Default timestamps to non-null