Updates the basic message routing code to allow for the application to determine which thread the callbacks are executed.
This is needed for JMRI as it is a single threaded (and non-thread-safe) application for most of its use-cases.
Coverage decreased (-0.05%) to 70.992% when pulling 8551627103fee8d36090ce0570d1d0dad2ae5c34 on bracz-single-threading into eadf3167ae9d8c7d848561ed59c0d864574d5920 on master.
Updates the basic message routing code to allow for the application to determine which thread the callbacks are executed. This is needed for JMRI as it is a single threaded (and non-thread-safe) application for most of its use-cases.