Split pattern definition cache into separate bins per library.
- Split the pattern discovery cache into separate bins per library
- Replace the PatternDiscoveryCollector with a stateless Loader implementation
- Reimplement PatternDiscovery service using plugin cache model
Closes #3402169