Added a Plugin protocol to define plugin start/stop lifecycle more strictly.