Fixing potential authentication and login deadlocks with await / async

On Windows 8, full async using async / await is available and is the preferable way of working. By working with tasks and task.Result, a deadlock might occur in certain scenarios.

The included fix updates LoginAsync and GetAuthenticator to a full async implementation, to avoid potential AuthenticationBroker deadlocks.