Fix findSubkeyByKeygrip for unknwon protocol
When std::equal_range does not find a match
it is not neccessarily the last element that
is returned because the first is pointing to
the first element that is not less than value.
If this is equal to the second pointing to the
first element greater than value. We have the
situation that first != end but it does
not have the grip searched for.