added component lifecycle management to Context/ContextBase

Context now provides a method that is used to register a component
whose life cycle is to be managed by the context.  The implementation
in ContextBase simply manages a collection of LifeCycle components,
starting the component (if necessary) before it is added to the collection,
and stopping each registered component whenever the context is reset.
ReceiverAction now registers receiver with the context

The context will manage the life cycle of the receiver.
added component life cycle management to LogbackValve

This essentially mirrors the implementation in ContextBase.
extract common life cycle management into LifeCycleManager class

This eliminates duplicate life cycle management code in ContextBase and
LogbackValve.