Move the stake related code out of the proof widget into a new StakesWidget.
For now the StakesWidget does not deal with raw UTXOs or with the wallet, it receives directly `SignedStake`s or `StakeAndKey`s objects.
Some interactivity will be added in a following commit, to allow users to remove stakes.
There is a minor change in behavior regarding the stake maturity status. Previously the tip height was checked for each stake at the time of adding it to the list, leading to potential inconsistencies (the maturity of stakes added later could be computed from a later block height than previously added stakes). Now the tip height is set once, at the widget's initialization. This allows removing a `self.wallet` reference from the `add_stakes` method. Properly handling the tip updates in real time and updating the stake color when the maturity is reached is probably not worth the effort.