Required service credentials

Previously, if a service was named such that it matched a service
search string (e.g. if it had insight anywhere within the name), the
the service finder would match the service.  This caused problems as
some times as service named in a certain way wasn't what a framework
was expecting.  This change allows component implementors to search
not only for a string in the service name, label, and tags, but also
ensure that a set of keys are present in the credentials.  If the a
single service matches, but the credentials aren't right, a warning is
printed and service will not be counted as a match.

[#64765506]
Merge 64765506-service-credential-requirements to master

[Completes #64765506]