Comment run. Remove locking from places that won't need it anymore.
Change terminology of TwoWayMessagePipe to use 'receiver' instead of 'target'.
Refactor TwoWayMessagePipe to separate the sender and receiver so they can't call each other's methods.
Get rid of EngineMaster::getEffectsManager().
Add BaseReferenceHolder/ReferenceHolder for holding a reference without being coupled to it.
Add EngineEffectsManager, an engine-side representation of the effects subsystem. It communicates with EffectsManager via a TwoWayMessagePipe with EngineEffectsManagerRequest and EngineEffectsManagerResponse messages.