Added Impersonate and Revert public functions

Made the default constructor public, and changed it to simply call
NativeMethods.LogonUser.  Actual impersonation is controlled by the
Impersonate and Revert functions, with the static LogonUser function
calling the former after creating its Impersonation object.
Added class and function summaries
Bump version