Avoid data race condition in MessageLogger

Previously the code was caching into MessageLogger itself the previous state of the MessageDrop before entering a module. This was used to then attempt to reset the state after leaving the module. This doesn’t work correctly in a threaded environment. The state being remembered was just the default state between modules and is actually known at construction time. Therefore the default values are now only set at construction time. [Found by helgrind.]