Get item ID from XML

This is a major change to how identity of items is figured out: the item ID.   

My problem was that I could not manipulate songs from playlists that were from Rhapsody, since the URI is insufficient to identify songs and there was no item ID parsed out.   Inspecting the XML returns from all API calls I saw that `<item id="ID"` is always returned with the right value, and I suspected it should be used replacing the existing code.  So this PR makes that change

Changes
* Add `item_id` parameter to all Music Item class constructors and subclasses
* Add that parameter to all calls and tests.
* Add `item_id` setter <- *not sure about this one!*
* Fixed the test codes to add the `item_id` field with the right value.
* Adjusted one test to strip out newlines from the test XML data (like all the others)
* Adjusted one test to use a more realistic item ID: `"SQ:13"` 

I've found so far that the APIs work and I can schedule Rhapsody calls from a playlist adding them to a queue `speaker.add_item()`  - `add_item_uri()` won't work for the reasons I give above.

Due to the impact of this change it would be great if others could test running the code.  There are almost certainly calls that now need the new item_id parameter, since it does change the API.  We could make it have a default value None for better backwards API compatibility.