Introduce PropertySpecificKeyframe type

This is a first step to caching property-specific keyframes.
Cache property-specific keyframes

This removes the need to cache the distributed keyframes, as they are only used
once.