Add async support

Add OnAuthenticationAsync and OnAuthenticationChallengeAsync methods so
async operations are supported.
Clean up code
Update README file

Add Motivation, Installation and Basic Usage sections.