Better Support for various Playlist Operations
zip implementation, iterator (`foreach` support), and Indexor support:
```
var current_track = playlist[0];
var up_next = playlist[-1];
var on_deck = playlist[-2];
var previously_played = playlist[1];
//etc.
```
Inverse Playlist Zip helper
Merge pull request #21 from techwiz24/playlist-history

Playlist History reimplementation