don't convert mailer default values to procs

Invoke mailer defaults as procs only if they are procs, do not convert
with to_proc.  That an object is convertible to a proc does not mean it's
meant to be always used as a proc.  Fixes #11533
Merge pull request #11559 from bughit/11533_to_proc

don't convert mailer default values to procs
AM Guide: Should be "different formats".
Cleanup task for informing about hstore
Merge pull request #11584 from Peeja/actionmailer-guide-typo

ActionMailer Guide: Should be "different formats".
Merge pull request #11585 from vipulnsward/hstore_change

Cleanup task for informing about hstore
Allow overriding of all headers from passed environment hash

Allow REMOTE_ADDR, HTTP_HOST and HTTP_USER_AGENT to be overridden from
the environment passed into `ActionDispatch::TestRequest.new`.

Fixes #11590
Privatize non-test method
Use Ruby 2.0 caller_locations instead of caller if available

* we no more have to manipulate the each caller strings by ourselves using caller_locations

* caller_locations runs slightly faster, and creates less objects than good old caller
Benchmark (loading an Engine 1000 times):
  caller: 262.89 ms
  caller_locations: 186.068 ms
Clean up unused associations in AR test model