jukebox_index: create only one instance of FileIndexer
jukebox_index: notify user upon indexed file based on -v
jukebox_index: leave tags alone
music.js: reorder to avoid casting
music.js: chain jquery invocations
api: use tuples for order_by_fields/order_by_default

Convert key: value pairs into tuples. That way, iterating through
order_by_* preserves the way the fields will be ordered.
queue: set Created to half-hour granularity
sort by Created, then votes

That way songs with singles/less votes are more likely to get played.
music.js: be cautious about remaining

Not only is it better to err on the side of caution, the API interface
may return a negative time remaining.
music.js: poll for new song at random intervals

While individual client setTimeout() granularity is already
undeterministic, explicitly require randomness before polling to avoid
overloading when songs are marked complete on the web interface.
Merge branch 'indexer-verbose'
Merge branch 'indexer-pristine-tags'
Merge branch 'js-neg'
Merge branch 'js-improvements'
Merge branch 'half-hour-sched'