spotify: added support for published and unpublished rootlist types, added addTrack, added createPlaylist, add addToRootList

Per #24, I've refactored to master branch and tested.

For some reason the `playlisturi` returned is not valid, e.g. when you do `createPlaylist('someuser', 'some playlist title', function(err, uri) {` the `uri` returned looks like `hm://playlist/user/someuser` instead of `hm://playlist/user/someuser/1234567`.  I can't figure out why it's not adding to root list... perhaps it's the `addToRootList` function?

Hopefully one of you guys can help, this is troublesome for a newbie on this project.

I've tried to reference <https://github.com/Hexxeh/spotify-websocket-api/blob/master/spotify_web/spotify.py#L583-L608> and the OP commits of #24, but I still can't resolve.

One thing I saw was that `proto/mercury.proto` spec has changed per the latest `.xml` file and you can see the diff I commented out in `proto/mercury.proto` per this commit/PR.  Specifically `MercuryRequest` has changed per <https://github.com/Hexxeh/spotify-websocket-api/blob/master/spotify_web/proto/mercury.proto#L8-L13> and I'm wondering if this might have something to do with it?

Let me know, thanks!  /cc @TooTallNate @adammw