Rename Logger to Log.

So that I can reuse Logger as the interface name.
Turn the regular and binary loggers into interfaces.

That way, with any luck I should be able to provide dummy implementations
for testing.
Turn into an interface with only the methods we actually need.

Not sure I like this, TBH, feels *too* fine grained. I can
feel n*m interfaces coming on soon...
Invert the dependency: caller creates and passes in binary logger.
Caller of log constructor responsible for generating filename.

Why does the log class need to know connectionNumbers etc?