(fix) Improvements to queue logic, more resolution on player state

Working the bugs out the the queue/player relationship. This code is an improvement, but there are still a number of issues.

- Listeners in room.js are still listening to themselves... creates an infinite loop sometimes and app crashes
- When last video ends and no videos are in queue, $rootScope.playerState is somehow still set to 1 (playing). This prevents the queue from automatically sending the first added song over to the player.

We'll figure it out tommorrow!