Make 'enable_extension' revertible

If 'enable_extension' is used in a migration's 'change' method, use
'disable_extension' on down migration (and vice-versa).
only reconnect if there was already an active connection

If you're using an in-memory database for the test database,
reconnecting will lose all information that schema:load did for us.
Add ActionDispatch::Url
Refactor ActionDispatch::Http::URL#url_for to use ActionDispatch::Url
Escape characters in url query when supplied via options[:path]