Fix spelling mistake
Added utility method for using modules
Use ModuleCollection.With
Added another Reply method that accepts Result
Use new Reply method to simplify code
Setup for challenge storage
Added session parameter to authentication module
Implemented challenge generation
Removed salt from challenge

Need to reverse the answer to get the token. The purpose of the
challenge is to prevent replay attacks.
Added functions to retrieve the token from the computed answer