Generic protobuf equality checking.

This will prevent us from making silly errors like forgetting to update an operator==() when we change the protobuf. It will also save work if we add new message types in the future.

This comparison uses reflection, so it requires the full protobuf library (rather than protobuf-lite). That's what we've been using anyway by default, but now it's a hard requirement.
Trivial: add a comment.