Refactor find_group() method and expose group ID/name ambiguity

find_group() now systematically looks up for group by ID and by name for a
given input. Found groups are resolved in a second step and a warning/error is
raised is multiple groups are found, e.g. for two different group where
id_or_name is the ID of the one and the name of the other.