In some respects it works like an AnimationCurve except that
ProgressCurve always takes in a normalized AnimationCurve and a second parameter defines the length of the animation.
A few helper methods are provided to track progress through the animation.