Adds tool creator routines to allow creating and using tools as opaque pointers, making it easier to link them into separate tool launchers.
Refactors the global droption parameters in the reuse-distance, histogram, and simulator tools to become local constructor parameters.
Adds printing of the simulator tool name to identify the output for multi-tool launchers. Updates the corresponding test output templates.