Move initialization and shutdown to exported functions.

Add a 'shuttle' class that encapsulates all the 'bits' that need to be created to run a log-shuttle instance.
Refactor config.go

Aiming to make the configuration parsing less dependent on command-line flags to allow external consumers to provide their own configuration without using command-line flags.
Compute config header on init, update tests.