Major STI refactoring

Use tar stream for sending scripts and source into containers instead of bind mounts.
Use tar stream for receiving saved artifacts from container.
Code reorg/cleanup.
Remove `OutputStream`, `ErrorStream`, `Stdout`, `Stderr`, and `Logs` from here because of https://github.com/docker/docker/issues/3631. Instead, make a separate call to get the logs.