Support optional plugin modules.
Cleanup.
Switch setup to OnEnable to support hot recompile.
Removing unused interface.
Added additional callbacks for OnSetup and OnUpdate and allow callbacks to be set before setup (#102)