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
Edit the tests for them to use the new command API. Disable TestRunHostname and TestAttachStdin.
Improve error management (avoid unwanted output in tests)
Reenable CmdRunAttachStdin and CmdRunHostname now using the DockConn interface
Make commands.go more idiomatic. Use DockerConn only when needed, keep io.Writer when not
Set the raw mode only for tty enabled containers
Add missing file
Update the tests according to the "optional raw mode" changes