Fix procedure for evenly distributing keyframes

Steps 2 and 3 of the existing algorithm ensure that offsets are specified for
the (perhaps temporary) first and last keyframes only if there are no keyframes
present with offsets of 0 and 1 respectively. This means that if keyframes with
offsets of 0 and 1 are present, but the first or last keyframes lack specified
offsets, step 4 will fail.

This patch fixes this bug by always ensuring that the first and last keyframes
have specified offsets, so that step 4 can assign offsets to any interior
keyframes with unspecified offsets.

This patch also removes the use of temporary keyframes. These are not required,
as if the last first or last keyframes already have specified offsets, no
interpolation to calculate offsets is required.
Remove logic from keyframe list normalization for multiple values for a single property

With the current keyframe syntax, it's not possible to specify multiple values for a single property.