A base interface for the APIs that clients of IVI services interact with.
Runs an action if the service is available. Otherwise, it adds the action to a queue that will be processed when the service becomes available.