PLT-469 - Value schedule

Add `ValueSchedule` and `ValueStep`

Allows the representation of a value that changes in a schedule, such as notional, rate, spread and gearing. It consists of one initial value and a series of steps that change it. Changes must occur at schedule period boundaries, and can be expressed by an exact date or period index.

Includes a `resolveValues()` method to convert the schedule to actual values (classic for loops seem to make most sense for this logic).

Test coverage 100% in non-auto-generated code.
I know ValueAdjustment isn't part of this commit, but it seems inconsistent to have methods called ofDeltaAmount and ofAbsolute. Why not ofAbsoluteAmount? That reads far more naturally to me.