Fixed `columns_for_distinct` of postgresql adapter
Added documentation for the :param option for resourceful routing
Remove unnecessary include for integration tests.
Speed-up TimeWithZone to String conversion

I've noticed that `String(model.created_at)` is performing poorly in comparision
with other fields. The source of the problem is a way `Kernel#String` works: it first
tries to call `to_str` (which causes `NoMethodError` in `method_missing`) and then calls `to_s`.

Performance tests:

    tz = Time.zone.now

    Benchmark.ips do |x|
      x.report { String(tz) }
    end

Without this code:

    Calculating -------------------------------------
                               572 i/100ms
    -------------------------------------------------
                            10177.7 (±18.2%) i/s -      48620 in   5.000325s

With this code:

    Calculating -------------------------------------
                              1518 i/100ms
    -------------------------------------------------
                           138984.2 (±10.1%) i/s -     677028 in   4.974897s
Clear inflections after test.
Fix documentation

To prevent `ArgumentError`, `config.action_view.sanitized_allowed_attributes` should be assigned by an array instead of a list.

```
/Users/tonytonyjan/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/set.rb:98:in `do_with_enum': value must be enumerable (ArgumentError)
	from /Users/tonytonyjan/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/set.rb:355:in `merge'
	from /Users/tonytonyjan/.rvm/gems/ruby-2.1.2/gems/actionview-4.1.1/lib/action_view/helpers/sanitize_helper.rb:211:in `sanitized_allowed_attributes='
	from /Users/tonytonyjan/.rvm/gems/ruby-2.1.2/gems/actionview-4.1.1/lib/action_view/railtie.rb:26:in `block (3 levels) in <class:Railtie>'
	from /Users/tonytonyjan/.rvm/gems/ruby-2.1.2/gems/actionview-4.1.1/lib/action_view/railtie.rb:25:in `each'
	from /Users/tonytonyjan/.rvm/gems/ruby-2.1.2/gems/actionview-4.1.1/lib/action_view/railtie.rb:25:in `block (2 levels) in <class:Railtie>'
	from /Users/tonytonyjan/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.1/lib/active_support/lazy_load_hooks.rb:38:in `instance_eval'
	from /Users/tonytonyjan/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.1/lib/active_support/lazy_load_hooks.rb:38:in `execute_hook'
	from /Users/tonytonyjan/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.1/lib/active_support/lazy_load_hooks.rb:28:in `block in on_load'
	from /Users/tonytonyjan/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.1/lib/active_support/lazy_load_hooks.rb:27:in `each'
	from /Users/tonytonyjan/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.1/lib/active_support/lazy_load_hooks.rb:27:in `on_load'
	from /Users/tonytonyjan/.rvm/gems/ruby-2.1.2/gems/actionview-4.1.1/lib/action_view/railtie.rb:24:in `block in <class:Railtie>'
	from /Users/tonytonyjan/.rvm/gems/ruby-2.1.2/gems/railties-4.1.1/lib/rails/initializable.rb:30:in `instance_exec'
	from /Users/tonytonyjan/.rvm/gems/ruby-2.1.2/gems/railties-4.1.1/lib/rails/initializable.rb:30:in `run'
	from /Users/tonytonyjan/.rvm/gems/ruby-2.1.2/gems/railties-4.1.1/lib/rails/initializable.rb:55:in `block in run_initializers'
	from /Users/tonytonyjan/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/tsort.rb:226:in `block in tsort_each'
	from /Users/tonytonyjan/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/tsort.rb:348:in `block (2 levels) in each_strongly_connected_component'
	from /Users/tonytonyjan/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/tsort.rb:427:in `each_strongly_connected_component_from'
	from /Users/tonytonyjan/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/tsort.rb:347:in `block in each_strongly_connected_component'
	from /Users/tonytonyjan/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/tsort.rb:345:in `each'
	from /Users/tonytonyjan/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/tsort.rb:345:in `call'
	from /Users/tonytonyjan/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/tsort.rb:345:in `each_strongly_connected_component'
	from /Users/tonytonyjan/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/tsort.rb:224:in `tsort_each'
	from /Users/tonytonyjan/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/tsort.rb:205:in `tsort_each'
	from /Users/tonytonyjan/.rvm/gems/ruby-2.1.2/gems/railties-4.1.1/lib/rails/initializable.rb:54:in `run_initializers'
	from /Users/tonytonyjan/.rvm/gems/ruby-2.1.2/gems/railties-4.1.1/lib/rails/application.rb:288:in `initialize!'
	from /Users/tonytonyjan/Dropbox/home/codes/penta_ruby/config/environment.rb:5:in `<top (required)>'
	from /Users/tonytonyjan/Dropbox/home/codes/penta_ruby/config.ru:3:in `require'
	from /Users/tonytonyjan/Dropbox/home/codes/penta_ruby/config.ru:3:in `block in <main>'
	from /Users/tonytonyjan/.rvm/gems/ruby-2.1.2/gems/rack-1.5.2/lib/rack/builder.rb:55:in `instance_eval'
	from /Users/tonytonyjan/.rvm/gems/ruby-2.1.2/gems/rack-1.5.2/lib/rack/builder.rb:55:in `initialize'
	from /Users/tonytonyjan/Dropbox/home/codes/penta_ruby/config.ru:in `new'
	from /Users/tonytonyjan/Dropbox/home/codes/penta_ruby/config.ru:in `<main>'
	from /Users/tonytonyjan/.rvm/gems/ruby-2.1.2/gems/rack-1.5.2/lib/rack/builder.rb:49:in `eval'
	from /Users/tonytonyjan/.rvm/gems/ruby-2.1.2/gems/rack-1.5.2/lib/rack/builder.rb:49:in `new_from_string'
	from /Users/tonytonyjan/.rvm/gems/ruby-2.1.2/gems/rack-1.5.2/lib/rack/builder.rb:40:in `parse_file'
	from /Users/tonytonyjan/.rvm/gems/ruby-2.1.2/gems/rack-1.5.2/lib/rack/server.rb:277:in `build_app_and_options_from_config'
	from /Users/tonytonyjan/.rvm/gems/ruby-2.1.2/gems/rack-1.5.2/lib/rack/server.rb:199:in `app'
	from /Users/tonytonyjan/.rvm/gems/ruby-2.1.2/gems/railties-4.1.1/lib/rails/commands/server.rb:50:in `app'
	from /Users/tonytonyjan/.rvm/gems/ruby-2.1.2/gems/rack-1.5.2/lib/rack/server.rb:314:in `wrapped_app'
	from /Users/tonytonyjan/.rvm/gems/ruby-2.1.2/gems/railties-4.1.1/lib/rails/commands/server.rb:130:in `log_to_stdout'
	from /Users/tonytonyjan/.rvm/gems/ruby-2.1.2/gems/railties-4.1.1/lib/rails/commands/server.rb:67:in `start'
	from /Users/tonytonyjan/.rvm/gems/ruby-2.1.2/gems/railties-4.1.1/lib/rails/commands/commands_tasks.rb:81:in `block in server'
	from /Users/tonytonyjan/.rvm/gems/ruby-2.1.2/gems/railties-4.1.1/lib/rails/commands/commands_tasks.rb:76:in `tap'
	from /Users/tonytonyjan/.rvm/gems/ruby-2.1.2/gems/railties-4.1.1/lib/rails/commands/commands_tasks.rb:76:in `server'
	from /Users/tonytonyjan/.rvm/gems/ruby-2.1.2/gems/railties-4.1.1/lib/rails/commands/commands_tasks.rb:40:in `run_command!'
	from /Users/tonytonyjan/.rvm/gems/ruby-2.1.2/gems/railties-4.1.1/lib/rails/commands.rb:17:in `<top (required)>'
	from /Users/tonytonyjan/Dropbox/home/codes/penta_ruby/bin/rails:8:in `require'
	from /Users/tonytonyjan/Dropbox/home/codes/penta_ruby/bin/rails:8:in `<top (required)>'
	from /Users/tonytonyjan/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/client/rails.rb:27:in `load'
	from /Users/tonytonyjan/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/client/rails.rb:27:in `call'
	from /Users/tonytonyjan/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/client/command.rb:7:in `call'
	from /Users/tonytonyjan/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/client.rb:26:in `run'
	from /Users/tonytonyjan/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/bin/spring:48:in `<top (required)>'
	from /Users/tonytonyjan/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/binstub.rb:11:in `load'
	from /Users/tonytonyjan/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/binstub.rb:11:in `<top (required)>'
	from /Users/tonytonyjan/Dropbox/home/codes/penta_ruby/bin/spring:16:in `require'
	from /Users/tonytonyjan/Dropbox/home/codes/penta_ruby/bin/spring:16:in `<top (required)>'
	from bin/rails:3:in `load'
	from bin/rails:3:in `<main>'
```
Merge pull request #15393 from tonytonyjan/patch-2

Fix documentation
add tests for argument error cases
add a test for existing mapper functionality

I'm not sure if this is actually used, but I'm adding a test to define
the behavior
set defaults at the top so we can avoid the ||= test
[ci skip] Improve form_helpers.md guide.
extract controller checks to methods
reduce blank? checks
Merge pull request #15395 from JuanitoFatas/docs/form-helpers

[ci skip] Improve form_helpers.md guide.
reduce action.blank? calls
fewer blank? calls
invert logic to remove nil? and exclude? checks (use ruby rather than AS when possible
trade 2 is_a? checks for a nil check
Fix indentation from 1b4b26f [ci skip]
return early if we have a valid controller name