[avalanche] include proof master and limited proofid in the delegation
Summary:
This way, the delegation includes all the data necessary to verify it.
The proof master key is added as a separate member rather than as the first level, because it is a special level that does not need to be signed by anyone else.
Remove the proofid from the serialized delegation, and from the constructor arguments. This can now be computed from the limited id and proof master key. This removes a possible way the delegation can be invalid, so the INCORRECT_PROOF state for the delegation is no longer needed.
Depends on D9596
Depends on D9597
Test Plan: ninja all check-all
Reviewers: #bitcoin_abc, Fabien, deadalnix
Reviewed By: #bitcoin_abc, Fabien, deadalnix
Subscribers: deadalnix, Fabien
Maniphest Tasks: T1634
Differential Revision: https://reviews.bitcoinabc.org/D9564