Obtains a username and password hash, prompting for them, if necessary.
Returns a tuple (username, password), which can be (None, None).
Username sources normally checked are, in order:
1. the options dictionary;
2. the agent referenced in the FTSS_AGENT environment variable;
3. the FTSS_USERNAME environment variable;
4. a prompt for user input.
Password sources normally checked are, in order:
1. the password file referenced in environment var. FTSS_PASSWORD_FILE;
2. the password file $HOME/.4ss.passwd or %WINDIR%\.4ss.passwd;
3. the password file referenced in the deprecated environment variable
FTSERVER_PASSWORD_FILE;
4. a prompt for user input.
Optional arguments:
options - a dictionary of options parsed from the command line
(see FancyGetOpt). The key 'anonymous' is taken to indicate that no
authentication is necessary and (None, None) should be returned.
If the key 'username' is present, the associated value is returned as
the username and no other potential sources for username are checked.
prompt - if the user is to be prompted for their username, this is the
string that indicates the type of user to be mentioned in the prompt.
It is 'User' or 'Manager', typically.
promptOnly - if set, this flag forces the username and password to be
obtained by prompting the user; other sources are not checked.