Avoid unwanted warnings from destroy() in TestStart()
Increase the timeout of TestRestore() to avoid unwanted timeout error
Prevent destroy() to stop twice container in TestRestore()
Increase the timeout in TestStart() to make sure the container has the time to die within the function
Merge the 3 ptys in 1
Make sure the process start in his own session and grabs the terminal
Cleanup pty variable names
Fix run disconnect behavious in tty mode + add unit test to enforce it
Make sure to flush buffer when setting raw mode
Move the DockerConn flush to its own function
made a new running the examples page, and added a link to the top of each example to the page to show people how to run them.
added headers to examples linking back to running the examples page
Extend the documentation covering the web app example

Make it clear how to access the web app running inside of the container
from the host.
Merge pull request #356 from flavio/improve_python_web_app_example

Extend the documentation covering the web app example
Merge pull request #347 from kencochrane/303_docs_fix

improved the example docs to help #303
Remove the unused http transport from rcli
Only set the terminal in raw mode for commands which need it

The raw mode is actually only needed when you attach to a container.
Having it enabled all the time can be a pain, e.g: if docker crashes
your terminal will end up in a broken state.

Since we are currently missing a real API for the docker daemon to
negotiate this kind of options, this changeset actually enable the raw
mode on the login (because it outputs a password), run and attach
commands.

This "optional raw mode" is implemented by passing a more complicated
interface than io.Writer as the stdout argument of each command. This
interface (DockerConn) exposes a method which allows the command to set
the terminal in raw mode or not.

Finally, the code added by this changeset will be deprecated by a real
API for the docker daemon.
Simplification in the goroutine that restore the terminal state on SIGINT
Move DockerLocalConn and terminal functions form package "main" to "rcli" in order to be able to use DockerLocalConn in commands_test.go
Use io.WriteCloser instead of *os.File in DockerLocalConn so we can use it with standard writers and pipes