Main application class that wires together all components.
Create a new JeevesWatcher instance.
Optional
Start the watcher, API server, and all components.
Gracefully stop all components: the API server closes first (no new notifications), then producers stop and queues drain (see shutdownComponents).
Main application class that wires together all components.