Strip credentials from ambiguous source warnings.

Fixes #3249.
Let’s create a class that wraps or subclasses URI and can return safe an non-safe, and defaults to safe with to_s. Problem… solved? :)

> On Nov 20, 2014, at 6:20 PM, Tim Moore <notifications@github.com> wrote:
> 
> In lib/bundler/source/rubygems.rb:
> 
> > @@ -224,6 +230,10 @@ def suppress_configured_credentials(remote)
> >          end
> >        end
> >  
> > +      def uri_without_credentials(uri)
> > +        @@uri_without_credentials.synchronize { @@uri_without_credentials[uri] }
> It would have to be an instance variable of an object that is owned by a single thread (which this source object isn't). Precomputing might work, but could also be tricky... the simplest thing would be if URI could return its own anonymized self and cache it per-instance, but I'm guessing we don't want to monkey patch URI! :-)
> 
> —
> Reply to this email directly or view it on GitHub <https://github.com/bundler/bundler/pull/3256/files#r20693755>.
>