Adds abilitiy to specify indexes and query with them
Adds "q:indexed" events to prevent race conditions in job removal
Adds garbage collection
Changes Job constructor third argument to "options"

This allows easier future additions. Current options available are
"indexes" (accepts a string) and "expires" (accepts a boolean)
removes 'Added by BC commit used for debugging'
Adds "return this" to setExpiration for chaining
Updates Queue getSearch to reference own createClient
Commit to undo 91bc06f3ce24d6d9c899fc24900efa84944346fe

Original way was more appropriate
Dont expire failed jobs only completed
Added overview navigation to readme.md
Clear interval when job is done to avoid 100% progress event being fired continuously.
Changed redis default port to 6379 in Readme.md, closes #122
Avoiding crashing call to zpop when the redis server is unreachable
implemented graceful shutdown
Dealing with the rogue jobs on shutdown.

Now we wait for a period of time, set the status to inactive and let it die.
This can be tricky if a job is actually taking time, and we mark it inactive
because this job will be executed again, and if it is not idempotent it may
repeat the job.
Setting killed jobs to failed.

Instead of setting to inactive, it may be safer to mark them failed and then retry.
Initial cut of the kue UI for batching.
Removing console logs and refreshing at 1000s

Bring the defaults back.
needs a noop callback to avoid exception on each job expiry
Merge branch 'master' into release

Conflicts:
	lib/queue/events.js
	lib/queue/job.js