refactor: Apply override specifier consistently
Summary:
refactor: Use override for non-final overriders
1551cea2d52cac403ff506a7cc955d8de8fd6f3e
refactor: Remove override for final overriders
d044e0ec7d37bbcdf10bbdb903b9119741c7297d
Two commits are split out from PR16710 to make reviewing easier.
From C++ FAQ:
C.128: Virtual functions should specify exactly one of virtual, override, or final Reason Readability. Detection of mistakes. Writing explicit virtual, override, or final is self-documenting and enables the compiler to catch mismatch of types and/or names between base and derived classes. However, writing more than one of these three is both redundant and a potential source of errors.
This is a backport of Core PR18914
Most of the work was done already in D767
Test Plan: ninja all check-all
Reviewers: #bitcoin_abc, majcosta
Reviewed By: #bitcoin_abc, majcosta
Differential Revision: https://reviews.bitcoinabc.org/D9082