New Preload System using a queue and a stack

This version of Chromesthesia pre-loads all songs that are uploaded one
after another, and when we swap to a new song, we add the index of that
song to a stack of the history.  When we go back, we pop off the stack
which song we are going to.

This method is much faster, and has much fewer bugs.  I need to refactor
the code still, but I think this branch will be merged into dev, and dev
will be renamed to "old" or something like that.
Quick patch - fixed playing undefined songs +more

You can't play undefined songs anymore by hitting Previous/Next before
the song loads.  Additionally, songs are populated to the UI after they
are loaded, and not before they are loaded.  This means that a user
cannot click on a song which doesn't actually exist yet.
Removed ability to load same file twice