Handle edge case in which source has no attributes

Lots of commits for what ends up being one change.  I had gone down the path of updating rdio-enhancer for the redesign, but never finished it up.  You did, so I reverted my changes and restored this fix which I encounter on some large playlists.