Logs on a user and changes the current process impersonation to that user.

IMPORTANT: Returns a WindowsImpersonationContext and you have to either dispose this instance or call RevertImpersonation with it.