Graceful Shutdown Improvements

This pull request improves shutdown in a number of ways.  The goal was to be able to shut down Kue and then start a new instance in the same process without side effects.  Tests have been included that help verify this functionality.

* Clears promotion interval
* Removes Queue listeners
* Unsubscribes from events
* Reset/null all singleton properties
* Destroys singleton