check for empty username and exit if it's unset
start on scp support, switch stdio to use []byte

[]byte makes more sense anyways and makes scp/rsync support
much easier since there'll be no guessing about binary/utf
as it moves through the channels