##### SUMMARY
This is largely a feature necessary for ansible-runner and Tower, but as of now, to respond to password prompts, runner uses `pexpect`.  

`pexpect` comes with its own host of issues, like the fact that even after you've matched the prompt and sent the response, it still buffers the output for the remainder of execution and adds extra overhead that is unnecessary.

Investigate enabling a way via named pipe, or some other potential ideas, to supply these passwords, other than prompting, or supplying inventory vars.  Providing vars exposes them, and there may be use cases to provide them in a way that the playbook doesn't necessarily have access to.

##### ISSUE TYPE
- Feature Idea

##### COMPONENT NAME
lib/ansible/cli

##### ADDITIONAL INFORMATION
<!--- Describe how the feature would be used, why it is needed and what it would solve -->

<!--- Paste example playbooks or commands between quotes below -->
```yaml

```

<!--- HINT: You can also paste gist.github.com links for larger files -->

"""
    Add options for commands which can run tasks as another user
    Note that this includes the options from add_runas_prompt_options().  Only one of these
    functions should be used.
    """
    runas_group = parser.add_argument_group("Privilege Escalation Options", "control how and which user you become as on target hosts")
    
    runas_group.add_argument("-b", "--become", default=C.DEFAULT_BECOME, action="store_true", dest='become',
                             help="run operations with become (does not imply password prompting)")
    runas_group.add_argument('--become-method', dest='become_method', default=C.DEFAULT_BECOME_METHOD,
                             help='privilege escalation method to use (default=%s)' % C.DEFAULT_BECOME_METHOD +
                                  ', use `ansible-doc -t become -l` to list valid choices.')
    runas_group.add_argument('--become-user', default=None, dest='become_user', type=str,
                             help='run operations as this user (default=%s)' % C.DEFAULT_BECOME_USER)
    add_runas_prompt_options(parser, runas_group=runas_group)
def add_runas_prompt_options(parser, runas_group=None):
    """
    Add options for commands which need to prompt for privilege escalation credentials
    Note that add_runas_options() includes these options already.  Only one of the two functions
    should be used.
    """
    if runas_group is None:
        runas_group = parser.add_argument_group("Privilege Escalation Options",
                                                "control how and which user you become as on target hosts")
    runas_group.add_argument('-K', '--ask-become-pass', dest='become_ask_pass', action='store_true',
                             default=C.DEFAULT_BECOME_ASK_PASS,
                             help='ask for privilege escalation password')
    parser.add_argument_group(runas_group)
def add_runtask_options(parser):