Queue object

This implements a container object for a queue as well. So core.get_queue will now return a Queue object, where the metadata is present as named attributes. Since this method before returned a list, this object retains backwards compatability.

Usage
```python
queue = soco.get_queue()
for item in queue:
    print item.title

print queue.number_returned
print queue.total_matches
print queue.update_id
```

I also moved some code a bit around in these new data structures for more efficient inheritance.

There is still the Wimp plugin that returns lists of data structures in the old way, but I would like to have at least one plugin more, before I write a data structure for that, to better be able to figure out how to generalize it.