Add native Rust dynamic library plugin support so Bcode can discover, load, activate, and invoke plugins through versioned interfaces.
Acceptance criteria:
- Plugin manifests can be discovered from supported plugin locations.
- Native dynamic libraries can be loaded from plugin manifests.
- Plugins can expose lifecycle hooks.
- Plugins can register services.
- Plugins can subscribe to host events.
- Bundled plugins are enabled by default.
- Bundled plugins can be disabled through config.
- Plugin load failures are surfaced with actionable diagnostics.
Add native Rust dynamic library plugin support so Bcode can discover, load, activate, and invoke plugins through versioned interfaces.
Acceptance criteria: