Fix prefix-matching for service ps The docker CLI matches objects either by ID _prefix_ or a full name match, but not partial name matches.
Fix prefix-matching for service ps
The docker CLI matches objects either by ID _prefix_
or a full name match, but not partial name matches.

The correct order of resolution is;

- Full ID match (a name should not be able to mask an ID)
- Full name
- ID-prefix

This patch changes the way services are matched.

Also change to use the first matching service, if there's a
full match (by ID or Name) instead of continue looking for
other possible matches.

Error handling changed;

- Do not error early if multiple services were requested
  and one or more services were not found. Print the
  services that were not found after printing those that
  _were_ found instead
- Print an error if ID-prefix matching is ambiguous

Signed-off-by: Sebastiaan van Stijn <64b2b6d12bfe4baae7dad3d018f8cbf6b0e7a044@gone.nl>

docker/cli,cpuguy83/cli,riyazdf/cli,Zebrilee/cli,allencloud/cli,Zebrilee/cli,redpanda/cli,allencloud/cli,thaJeztah/cli,ashfall/cli,redpanda/cli,ashfall/cli,dnephin/cli,docker/cli,dnephin/cli,thaJeztah/cli,riyazdf/cli,cpuguy83/cli