RepositoryExistsException tweaks

There's a couple of things in here that aren't right:

 - [x] `Credentials.Login` isn't always a username (for example, OAuth) - drop assumption
 - [x] `Connection.Credentials` hides a `Task.Result` and will block in some edge cases
 - [x] the `ctor` of `RepositoryExistsException` assumes we know the owner