Shared Dependency and Lifecycle
[Fix: 40] onProcessStart( ) has been moved to the process thread to be symmetrical with onProcessStop( ).
[Fix: 41] onStopped, onStarted and onProcessStopped methods must require overrides to call parent.
[Fix: 42] Process now resets call-parent state when process terminates, to prepare process for consistent restart conditions, if requested.
[Fix: 43] onProcessStopped now symmetrical with onProcessStart, in Process thread.
[Feature: 45] Create method now allows a dependency to be declared as shared without specific ownership.
[Fix: 46] dependencies are now stopped during the onStopped callback, not onStop.
[Fix: 47] LaunchDependency method, called during onStart, is split in two parts: one that creates the dependency and takes ownership on creation (in a non-reentrant method to disallow concurrent creations), the second to start the dependency which is reentrant to allow recursive calls.