Add abstract caching registry
Is your feature request related to a problem? Please describe.
Several registry implementations employ client-side caching of registry proto, for example sql and snowflake. The code for caching is virtually identical and repeated.
Describe the solution you'd like
Add an abstract layer on top of base registry that implements caching logic and lets subclasses handle the logic only for the cases when there's a cache miss.