Add infrastructure for a centralized operation launcher
This MR adds the concept of an operation launcher to the operation manager. The default operation launcher executes an operation in a child thread. The MR also introduces a Qt-enabled launcher that executes operations in a child thread and signals from the main thread when it executes an operation.