Queue.prototype.close now returns a promise

It is resolved when both the redis connections have been successfully
closed and rejected after a configurable timeout, set at 5000ms
Don't instantiate queue twice in tests

A new queue instance was being created before each test in test_queue
Some tests would then create additional instances before executing.
This commit makes sure each tests instantiates only as many instances
as it needs and that each instance is closed afterwards.