Add domain, password, with_logon options
Add domain, with_logon, & password to create_process_args hash
Change env.multi_to_wide(e) to multi_to_wide(env) as we want to make env unicode and the env string does not have a multi_to_wide function
Add logon_with_profile flag for the cases where the user profile needs to be loaded
Switch from LOGON_WITH_PROFILE to LOGON_NETCREDENTIALS_ONLY.  Faster and works more consistently
Modify handling of environment hash to cover both unicode and ansi style
Add a check for local service and do a LogonUser & CreateProcessAsUser if so