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.
Merge pull request #415 from steveblock/cachePropertySpecificKeyframes

Cache property specific keyframes