Add support for realtime output

This patch adds a new "show_output" option that can be enabled on
individual tasks, plays, or globally via a config option.(It defaults to false).

When enabled, whenever a running module calls AnsibleModule.run_command,
the output will appear in the user's console as the task is running.

Implements #3887

For example, on a task:

    - name: upgrade packages
      apt: upgrade=full
      show_output: true

When running, output would appear in the console, like this:

```
TASK: [upgrade packages] ******************************************************
Reading package lists...
Building dependency tree...
Reading state information...
Reading extended state information...
Initializing package states...
The following NEW packages will be installed:
  linux-image-3.2.0-30-generic
...
```

## Overview of how it works
This change only shows output for modules that use the AnsibleModule.run_command method to invoke commands on the server. It modifies the run_command method so that when it invokes a command on the server, stdout and stderr are written to files instead of to a pipe. 

The client starts up a new process and runs "tail -f" on the stdout and stderr files so that the output appears on the client as the task is running. When the task completes, it kills the process.

## Managing temporary files for stdout and stderr
### Creating temporary files
In `lib/ansible/runner/__init__.py`, the new `Runner._make_live_output_files` method will create two temporary files on the server for stdout and stderr. The Runner._executor_internal_inner method calls calls `_make_live_output_files` if show_output is enabled.

### Passing the filenames to module
The Runner._executor_internal_inner method adds  `ansible_stdout_file` and `ansible_stderr_file` entries to the local `inject` dictionary, which it passes to the ModuleReplacer.modify_module method.

The ModuleReplacer.modify_module method looks for the `ansible_stdout_file` and `ansible_stderr_file` variables. If they are present, it inserts them into lib/ansible/module_utils/basic.py as the new MODULE_STDOUT_STDERR_FILES dynamically inserted variable.

### Writing to files in run_command
In lib/ansible/module_utils/basic.py, the AnsibleModule.run_command method now checks if stdout/stderr files have been specified by checking the new MODULE_STDOUT_STDERR_FILES dynamically inserted variable.

If MODULE_STDOUT_STDERR_FILES contains a pair of filenames ('/path/to/temp/stdoutfile', '/path/to/temp/stderrfile'), then run_command will open those file in read+append mode, record the initial location of the files,
and pass them to subprocess.Popen. When done, it will read the contents
of those 

### Writing the files into the module
The names of the files are automatically inserted into lib/ansible/module_common.py via the new REPLACER_STDOUT_STDERR_FILES option as a pair of filenames ('/path/to/temp/stdoutfile', '/path/to/temp/stderrfile').

The ModuleReplacer will read the names of the files from the 'ansible_stdout_file' and 'ansible_stderr_file' variables if they are there, and replacing them.

## Watching the temporary files
The new lib/ansible/runner/live_output.py file contains a class called LiveOutput that is responsible for displaying the output of the temporary stdout and stderr file on the remote server.
This class will start a new process using multiprocessing library, connect to the remote server by calling `Runner._low_level_exec_command`, and then invoke "tail -f stdoutfile & tail -f stderrfile", passing `capture_output=False` as an argument so that the output would be sent directly to the terminal instead of to a pipe or file.

## Cleaning up the files
The `Runner._executor_internal_inner` method stops the LiveOutput object (terminating the process) and deletes the remote stdout and stderr file once it finishes running the module.

## Outputting directly to console
The proposed change adds the "capture_output" argument to the Connection.exec_command method of all connection plugins. The default value is set to `True`, which is the original behavior of this method (capture the output to a pipe).

If `capture_output=False`, then the output of the command will be sent directly to the user's terminal instead of being sent to a pipe or a file. This was necessary to implement the behavior of the LiveOutput class.

All connection plugins were updated so that they could handle the capture_output argument. However, this functionality was only implemented for the plugins:

 * ssh
 * local
 * jail
 * chroot

For the other connection plugins: (accelerate, fireball, funcd, paramiko_alt, paramiko_ssh, ssh_old), setting `capture_output=False` will raise an exception.

## Adding support for "show_output" option
Adding the new "show_output" option on plays, task, and globally required changes to:

 * example/ansible.cfg
 * lib/ansible/constants.py
 * lib/ansible/playbook/play.py
 * lib/ansible/playbook/task.py