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.
There's no validation of this value, it's possible to specify a negative index which would be returned from findIndex. Why not validate that it's >= 1?