Merge remote-tracking branch 'learnboost/develop'
Merge branch 'develop' of https://github.com/LearnBoost/kue
Starting conversion of q:
Updates hard-coded 'q' prefix to use redis client prefix
Initial tests for prefix functionality
Fixes tests to work without flushing redis
Tests simple job process with prefix
Fixes a missed conflict
Notes on redis.prefix in README
Sets events.key based on redis prefix
Uses prefix in json.js routes
Updates createQueue arguments

Queue prefix is now a top-level property in the options, not attached to the
redis options.
Updates readme with new prefix createQueue parameter structure
Uses client.getKey func instead of client.prefix

Moved all prefix/key related code into kue.js and redis.js.  Workers, jobs, and
the Queue now use client.getKey() instead of directly referencing the prefix.

NOTE: This approach DEFINITELY breaks monkey-patching as only the clients
created by `createQueue` or `redis.client` will have the `getKey` function
defined.
Fixes shutdown/createQueue possible race condition

In testing, I was consistently observing an event callback being run after
redis.reset() was called.  This caused the `_client` module variable to be
recreated with default settings.  When the next `createQueue` was called, it was
not clearing the internal state of the redis module and so cases where
`redis.client()` was called directly would end up using the
`defaultCreateClient` instead of the new one.

Long term, making sure that Job and Worker use the singleton's redis client
could fix this (or making sure a reference is handed to workers and jobs instead
of them relying on the module's singleton).  This is a larger refactor than I
want to take on right now!
merged with master
Merge branch 'master' into develop
merged from latest master
missed fixes on test
initial backoff implementation