UserAuthenticationInitializeAsync Method
To complete the Constructor process a number of Async calls need to be made. Because it is not possible
(at least not wise) to call Async within a constructor this InitializaAsync() method is used to complete
the process. It should be called immediatly after the Constructor.
If InitializeAsync() is not called an exception InitializeAsyncNotCompletedException() will be thrown.