Restructured search module.
Searching refactored, not quite DRY.
Fixed flashing.
Fixed loading a random top music in the player at pageload.
Fixed player title updating.
Fixed search record playing.
Merge branch 'refactor-js'

I refactored some parts of the JS scripts, DRYing out the provider-related methods.