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
add lodash, lodash.deep dependencies
added initial support for granular index keys on job.data