switch queue to array based instead of objects, will be easier to re-order in the future I hope.
fix the next an previous button from playing when at the end.
Some cleanup
move Util to lib/Util