Fixed scanner tests being broken.

Note to self: cargo test before push, dipstick.
Added unbuffered stdin read_line.

According to /ar+/, std::io::stdin sucks because each call constructs a
new buffer.  Worse, read_line will over-buffer if stdin is connected to
a pipe instad of a terminal.

The new scan_util::io::stdin_read_line reads directly from stdin without
buffering.  Aside from not supporting old-school Mac OS newlines[1], it
reads a line *without* over-buffering.  Sadly, this approach can't really
be extended to general scanning, since we need arbitrary lookahead.

[1]: Rust isn't even supported there.

Fixes DanielKeep/rust-scan#1.