Use a virtual terminal for inferior output capture.

Debugged processes in general expect their standard streams to be
connected to a terminal, or might alter their behavior (e.g.: output
buffering, output formatting, etc).

Pipes do not present a terminal interface, so we have to create a
virtual terminal pair in order to keep the interface.
[WIP] Implement {Save,Restore}RegisterState.