(re-)implement raw tty support, with integration test

This can be safely done when creating the tty, rather than iodaemon having to do it itself, which is flaky/race-condition-prone. So, added it back in that way, with an integration test covering it. The integration test will fail without a raw tty, as `hello` will not make it to the process, because the normal (cooked) line discipline waits for a line termination.

/cc @sheelc