Always convert visit's URL to a String before manipulation

It is convenient to be able to pass in URI objects to `visit`, but
these need to be coerced to a string before actual usage. Most of
visit's code paths would convert the incoming url to a string
as-needed. However, the path used when `always_include_port` is
enabled did not, causing an error where `URI.parse` would try to parse
an existing URI object.

This change consolidates the coercion to string at the entrypoint of
the method.
Update visit's documentation to indicate that it requires something that can become a string
Fix a typo
Merge pull request #1360 from bbatsov/patch-1

Fix a typo
Merge pull request #1357 from shepmaster/visit-uri-and-always-include-port

Always convert visit's URL to a String before manipulation