Provider Capabilities

This adds provider capabilities (#2652). This is like guest or host capabilities, and allows arbitrarily extending providers after-the-fact to add capabilities.