Add interactive mode to prompt for any input arguments not supplied through other input sources

Order of input value precedence (from highest to lowest priority):

  1. Explicitly specified on the command line
  2. STDIN
  3. Environment variable

If for example, the user specifies --interactive/-i or perhaps does not specify --batch, and no password was provided as a command-line argument or from STDIN or from an environment variable, then we should present them with a prompt asking them to type in the password.

This should work for all input arguments; salt (optional), username and password. The TTY should be set to mask the input of the password from the user.