Updates to the API of the Vault contract as worked on in codex-storage/codex-contracts-eth#220
Most important changes:
- token transfers are much more restricted in the vault, improving its safety
- when a storage request fails, only the providers at fault are punished, the rest are not
- when a storage request fails, the client is only reimbursed for the remaining time in the contract
- no longer possible for the marketplace to request one final storage proof before allowing withdrawal
- repair reward is temporarily stored with the client's funds while slot is free, and not yet filled; this could lead to client withdrawing repair rewards when slots are free when the request ends