Refactor:
ServiceHander is now abstract
ServiceMsg.MsgType enum now used for msgType
Emit and Command API simplification
onServiceMsg in ServiceContext doesn't iterate twice over the handlers.