Implement login with private registry

To improve the use of docker with a private registry the login
command is extended with a parameter for the server address.


While implementing i noticed that two problems hindered authentication to a
private registry:

1. the resolve of the authentication did not match during push
   because the looked up key was for example localhost:8080 but
   the stored one would have been https://localhost:8080

   Besides The lookup needs to still work if the https->http fallback
   is used

2. During pull of an image no authentication is sent, which
   means all repositories are expected to be private.


These points are fixed now. The changes are implemented in
a way to be compatible to existing behavior both in the
API as also with the private registry.


Update:
    
- login does not require the full url any more, you can login
  to the repository prefix:
    
  example:
  docker logon localhost:8080
    
Fixed corner corner cases:
    
- When login is done during pull and push the registry endpoint is used and
  not the central index
    
- When Remote sends a 401 during pull, it is now correctly delegating to
  CmdLogin
    
- After a Login is done pull and push are using the newly entered login data,
  and not the previous ones. This one seems to be also broken in master, too.

- Auth config is now transfered in a parameter instead of the body when
  /images/create is called.