Add a stucture to hold the Last Change Event message

I was trying out the events.py functionality, and found it very hard navigating the data returned.  To resolve this I have created a new file event_structures.py - The idea behind this is to have some "helper classes" that make reading this data a bit easier. (After all this is XML embedded inside XML).

It should be pretty simple to use, after you have made a call to get the event off of the queue, you just construct it and then access the data.
```
# Note: exception handling etc removed
device = SoCo('192.168.0.14')
sub = device.avTransport.subscribe()
event = sub.events.get(timeout=0.5)
lastChangeXmlStr = event.variables['LastChange']
lastChange = LastChangeEvent.from_xml(lastChangeXmlStr)
# Then access it to get the data
print lastChange.transportState
print lastChange.currentTrack
```

I know there is only the single Event class at the moment (for avTransport) - but it is a start - it is something that people can add to as they have the need for more event support.

Hope this sounds OK to people.

Rob

When I was debugging, if I wanted to see the XML that failed to pass as well as the output of the exception, then I needed both (This was when I was hacking in test data - I haven't actually seen Sonos pass invalid data in my "live" tests - but this is just in case it does)