Setting up alternative output stream

That way we can test what gets printed to stdout without actually
printing to stdout, and we can silence it without screwing up stdout
Adding dry-run capability and starting basic writer functionality

Dry run prints files to stdout instead of actually writing the files.
Document writer is intented to be extended by the individual document
writers