HttpRequest doesn't mutate the URI if it's an Addressable::URI

If you pass an Addressable::URI into a HttpRequest, it mutates the
instance by setting the port on it. This is unexpected to the caller,
why would the port on the URI be set just by requesting it?

This change clones the uri that's passed in before mutating it.
Merge pull request #219 from jagregory/no-mutate-uri

HttpRequest doesn't mutate the URI if it's an Addressable::URI