MessageDirector: Increase code reuse and clarity in control message handlers.

This should make it easier to change how we handle upstream messages in the future.
MessageDirector: Document classes and methods in MessageDirector.h.