Made MessageQueue a singleton. MessageQueue now gets a String key and a Runnable.
Created a SingletonRegistry class to make all the singletons we have thread-safe