Read input one char at a time instead of 2

We were reading input two chars at a time, which caused us to
read one past each newline, so that every other transaction was
read off-by-one (and of course corrupted).

For some reason this did not cause problems when copy/pasting
transactions on a terminal; only when I tried using cat did I
see the error.