Add String#in_time_zone method

This commit adds a convenience method for converting a string to an
ActiveSupport::TimeWithZone instance using the configured Time.zone or
another passed as an argument.
Explain how to supersede the new dynamic welcome page

The old, static welcome page instructed developers to delete the
public/index.html file and set a root route.  The new, dynamic welcome
page should tell developers (a) why they're seeing it when it doesn't
correspond to anything in the viewable app source and (b) that it can
be superseded with a root route.
Add missing at_end_of_* aliases
Deprecate Date#to_time_in_current_zone

The to_time_in_current_zone method doesn't match the naming of the methods
for converting to ActiveSupport::TimeWithZone on Time and DateTime. Since
DateTime inherits from Date that has led to confusion with some users
using the to_time_in_current_zone method with DateTime instances and having
the time part dropped and the UTC offset lost.

This commit fixes this by deprecating the old method and adding a new
in_time_zone method which matches the naming for DateTime and Time. This
should prevent accidently dropping times and UTC offsets when converting
DateTime instances to ActiveSupport::TimeWithZone.
Merge pull request #8484 from gclag/dynamic-index-refinements

Explain how to supersede the new dynamic welcome page
Update guides/source/routing.md

It's no longer necessary to delete public/index.html for the root route to take effect.
Remove changelog entry from #8441 [ci skip]

This issue only happens on master due to internal AR refactorings, so
there is no need for a changelog entry.

The test was backported to 3-2-stable to ensure there won't be any regressions.
Clean up 'active_support/time' requires

Rely on the hub files for Time, Date and DateTime classes and
add the requires for String#to_time and String#in_time_zone.
Only call `in_time_zone` on Time or DateTime instances

Both String and Date now respond to in_time_zone so we need to
check if the value is a Time or a DateTime.
Beef up tests for String#in_time_zone and Date#in_time_zone
Deprecate obsolete Time to DateTime fallback methods

The Time.time_with_datetime_fallback, Time.utc_time and Time.local_time
methods were added to handle the limitations of Ruby's native Time
implementation. Those limitations no longer apply so we are deprecating
them in 4.0 and they will be removed in 4.1.
Backport thread-local variables from Ruby 2.0
Fix rewinding in ActionDispatch::Request#raw_post

If env['RAW_POST_DATA'] is nil, #raw_post will attempt to set it to
the result of #body (which will return env['rack.input'] if
env['RAW_POST_DATA'] is nil). #raw_post will then attempt to rewind
the result of another call to #body. Since env['RAW_POST_DATA'] has
already been set, the result of #body is not env['rack.input'] anymore.
This causes env['rack.input'] to never be rewound.
Improve test name related to cache timestamp format [ci skip]

Conflicts:
	activerecord/test/cases/base_test.rb
Merge pull request #8490 from mattv/fix_request_raw_post

Fix rewinding in ActionDispatch::Request#raw_post
Remove not used variable warnings from AM and AC
Remove deprecation message from Action Pack

Related to the deprecation of Time.utc_time in favor of Time.utc,
in 48583f8bf74d1cefefea3cd6591bd546a9eaff6c.
Remove deprecated Time methods from the guides [ci skip]

Don't use:
* Time.time_with_datetime_fallback
* Time.utc_time
* Time.local_time
Add #destroy! as a method that triggers callbacks
Output routes in :html format

By formatting routes for different media (txt/html) we can apply optimizations based on the format. We can include meta-data in the HTML to allow a rich experience while rendering and viewing the routes. This PR shows route helpers as they are used with the `_path` extension, it also has a javascript toggle on the top to switch to `_url`. This way the developer can see the exact named route helper they can use instead of having to modify a base. 

This is one example of an optimization that could be applied. Eventually we can link out to guides for the different columns to better explain what helper, HTTP Verb, Path, and Controller#action indicate. We could even add a route search box that could allow developers to input a given route and see all of the routes that match it. These are stand alone features and should be delivered separately.