Implemented Shuffle Functionality - Some bugs detailed in Comments

Bugs I've noticed and am working on... 

When Shuffled:
- Sidebar is displays songs past the last one (the last one gets repeated)
- playNext/playPrev can go out of bounds
- shuffling without first playing a song in a q or playlist breaks the player