Fix potential ambiguity of the comparison operator for BranchParameter.
C++20 introduces support for comparison operator rewriting. In particular,
the compiler is now able to synthesize comparison operators with swapped
arguments, so e.g. for operator==(A, B) it would synthesize operator==(B, A).
This poses a problem for BranchParameter::operator==, which is declared
non-const and accepts a const BranchParameter& argument. The above rewriting
would synthesize a different operator== that is marked as const but accepts
a non-const BranchParameter& argument. Invoking comparison between two
non-const BranchParameter objects would therefore be ambiguous as the original
and the synthesized overloads would both equally match. Gcc 14 gratiously
accepts such code, albeit with a warning, but other compilers may reject it.
Fix this by marking the operator== as const.