Metadata proxy optimization

It's not related to this change, but I've never liked the fact that all of the drivers have a different public interface. I would rather they all had a single method like update() that takes a config object and does the work, with logic like figuring out whether or not to restart services hidden inside the driver.