Update HiveDataBroker to use C++20 ranges if available.
gcc 10 in C++20 mode gives errors on the range-v3 code in HiveDataBroker.cpp. However, gcc 10 has C++20 ranges, so switch to using that implementation instead if it is available. In so doing, we need to change remove_if to filter, as the former isn't in C++20 ranges.