Synchronize output handler threads to avoid garbled output

Fabric is creating threads for each channel of every ssh connections. Each
of these threads is printing the outpout received from the remote but the
printing is not synchronized. This results in garbled output, for instance
if thread A is printing the "<hostname> out:" prefix while thread B is
printing the output of the remote command both printouts could be
shuffled.

Ecpected behaviour: Each thread should exculsivly print prefix + output
without being interrupted by another thread.

Synchronizing with multiprocessing locks to avoid garbled output.
Output multi-line run/sudo commands correctly
Substract prefix length from pty width in run() output
Avoid hanging output lines which might corrupt synchronized output
Prefix host specific error messages with [host] prefix
Fab host definition: New parameter for giving a hosts file

The fab commandline option "--hosts-file=<hosts file> can be given
to provide a simple text file containing hosts line by line.

These hosts will overwrite any previously set hosts (given on cmdline
or in the fabfile via the env hash.
Parallel execution: Handle NetworkError exceptins in child process

Python Exceptions thrown in the child process are obviously handled
by the multiprocessing lib that is showing a traceback. The handler
of the NetworkError exception in tasks:execute was not receiving the
exception

Since we don't want to see the trace we are handling the exception
in the child process, showing an error.

For the reason of backwards compatibility env.use_exception_for['network']
is evaluated in the same manner as in tasks:execute.
Fabric tasks: Adding a summary of hosts succeeded and failed

Per task there will be summary indicating on which hosts the task
has succeeded or failed.

Meant for getting parsed by a tool connected by a pipe.
Initialize logging to avoid paramiko warnings
Avoid further unnecessary newline in output

OutputLooper and _execute try to add a newline if the command output ends
without that. OutputLooper does that in linewise mode, _execute in
non-linewise mode. A check for "not linewise" was missing from the former.