Introduce a Redis API

In some cases, it may make sense to interact with the onCue system via Redis, for example buffered job enqueueing (where you want to enqueue a new job even if the onCue service is down).