Replace QueueInterface::peek() with QueueInterface::slice(), removed AbstractQueue in favor of QueueUtils class,  clean up tests, apply minor fixes and tweaks