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.
Add a static `ProofId::fromLimitedId` method to avoid duplicating the proof id computation code.
Rename a parameter from `newMaster` to `delegatedKey` in `Delegation:addLevel` to avoid confusion, now that the delegation has a `proofMaster` member.
Depends on D9544