Remove duplicated code

This was an attempt to clean up the codebase and reduce the amount of duplicate code in keysocket files.

I have created a shared.js and made it contain standard functions. The logic for controlling a player is passed in as a function at a later stage.

There was a few services I was unable to test due to
1) Paid membership
2) Country restrictions
3) Language issues

I didn't modify these as I had no way of testing.

All modified code was tested and verified. I noticed the grooveshark ids changed.