Bug 563987 - ServiceCaller for one-shot service lookup

There are several times where looking up an OSGi service on demand
instead of having a persistent service association may make sense. For
example, if static debug options are used for the platform then it may
not be desirable to look them up each time the debug flag is accessed.
Alternatively, error logs may choose to defer looking up the log until
the error situation occurs.

By providing a wrapper for doing service lookup on demand, we ensure
that we follow OSGi guidelines for returning the service after use, and
by providing a functional API we can pass in the code required that
needs the log with minimal caller involvement.

Additionally the ServiceCaller provides a simple way to cache a single
instance of the service for cases where the service is used often

Change-Id: I6f301cd85e52dc5d25949d93970cdf4e7b331272
Signed-off-by: Alex Blewitt <alex.blewitt@gmail.com>
Signed-off-by: Thomas Watson <tjwatson@us.ibm.com>
7 files changed