Exposed BuildKey and BuildPolicyKey

Since implementations of IBaseCacheKey should follow our opinion about
how keys are formed, go ahead and make it easier for them to do so even
if they don't inherit from BaseCacheKey.