Ongoing property work

1. Introduce InterpolatableValue interface and make most basic types we support implement it.
2. Add InterpolatableNumber.
3. Update SampledProperty to use the InterpolatableValue interface rather than specialized helper classes.