Allow subclasses to override exit correctly

Prior to 28d3dd1dc2cf3ec8d7fae0df43c6e43acc375d7b subclasses of Service and Process could override exit(reason : Any) to cleanup stateful resources. This patch restores that ability.

It might be neater to have an onExit(reason : Any) variant, with a no-op implementation in the base class  to guard against overriding this function without calling the superclass.