Removed QueueStatic

Instead, just pass the Player instance that owns the ZPlayer instance.
Replaced Next/Previous with ChangeSong

Mostly for the actual engines -- because Next() and Previous() are
pretty much identical, other than which song they're going to change to
Reworked EngineQueue

It didn't make any sense before - we were peeking instead of dequeueing
and vice versa, it seemed like.  Now, I changed things around a little
and it seems to be working fine - also, added a History to the queue
that we can use for Previous().
Implemented repeat modes

Also don't crash if queue is empty
Quick playlist shuffle implementation
Reworked EngineQueue as a staging area for Gapless

Changed Playlist.Index stuff, added helpers, added repeatmodes to
Playlist, killed History stacks as a "Now Playing" Playlist itself is a
history, Refactored ZPlayer Queue into Enqueue.
Possibly fixed EngineQueue Dequeue with RepeatMode Track

Also refactored the Action for notifying the playlist
Implemented Cycle RepeatMode, fixed next on RepeatTrack
Fixed #8
Merge pull request #10 from Team666/engine-improvement

Previous Song and Replay modes work