Rename CachedSatisfaction to Component

This gives CachedSatisfaction a more implementation-agnostic name and location, so we can extend it in the future.