refactor: make encode_path private

This is a first draft of the discussed refactor of #1006 to keep encode_url out of our api. If there's a better way to do it, I'd love to; this is just the first way I found that worked.

(Also, given that Uploader#process_uri is using the "obsoleted" URI.encode, Utilities#Uri seems like a likely home for the (I wish it weren't necessary) URI.encode replacement we're presumably going to have to write before ruby 2.1. If that sounds ugly, at least we aren't Fog, who apparently have to maintain custom versions of URI.encode aka escape for [aws](https://github.com/fog/fog/blob/master/lib/fog/aws.rb#L88), [cloudstack](https://github.com/fog/fog/blob/master/lib/fog/cloudstack.rb#L13), [hp](https://github.com/fog/fog/blob/master/lib/fog/hp.rb#L192), and [rackspace](https://github.com/fog/fog/blob/master/lib/fog/rackspace.rb#L90).)