Allow clients of Plugin to disambigate multiple matches

Because entry_points allow for name overlap inside a single entry-point
namespace, Runtime Applications using the entry-points need to be able
to disambiguate, if they have a preferred source of plugin. This is the
most generic way of resolving those conflicts, as it gives the caller
the flexibility to change the resolution every time that the function is
called.

[LMS-48]