Fix a bunch of bugs, improve the logging support etc.

We didn't actually detect some binary pushes due to a whitespace bug
in the parser, i.e. we expected "| Bin" but could get "| Bin" or
whatever.

I improved the docs a bunch and added an example.

Now we support very basic log levels, basically just so I can pipe
TRACE output to the log command but keep the STDERR output at NOTICE,
nothing too advanced.

Due to a brainfart of mine I was doing validation of $from^..$to, but
we just need $from..$to, otherwise we're validating data that's
already been pushed, d'oh!

I also reworded some of the output messages.