VaultOperatorTicket -> VaultOperatorDelegation. Store delegation information in the ticket.
Remove VaultDelegationList. Instead, use list of VaultOperatorDelegation on-chain w/ indexed array.
All X_Y ticket accounts when initialized are inactive. Explicitly call warmup/cooldown to active/deactivate.
When warming up X_Y ticket on-chain, ignore the state of Y_X.
Add InitializeVaultUpdateStateTracker, CrankVaultUpdateStateTracker, and CloseVaultUpdateStateTracker for tracking delegations + vault updates at epoch boundaries.
Move core delegation state to DelegationState struct. Move tests.
Reworked undelegate for withdrawal logic to withdraw from already cooling down assets first.
Right now vault delegation manager is responsible for withdrawing assets to fulfill vault redemptions. Also, the vault delegaiton manager can re-delegate assets as it pleases. This will get fixed in the next PR