Improving attachments architecture and log setup

Splitting into two main types of base file, runner and importer.
Runner is the only one to create a log file. This operates under
the assumption that none of the separate steps will be called
outside of the context of the runner.

This prevents proliferation of too many log files, and reduces
redundant code execution.

Added: a runner argument to log to the console rather
than a file. (--log-to-stdout)