sonoshell + core improvements

Hi,
This adds two features to sonoshell.py
Firstly a list command that shows the zone name:
```
[adam@styx]$ python sonoshell.py all list
      10.0.8.154 Living Room
      10.0.8.158 Bathroom
      10.0.8.156 Bedroom
      10.0.8.151 Kitchen
```

Secondly a fade command, that works in two ways:
fade volume on 10.0.8.156 from 0-10 over 100 seconds:
```
[adam@styx]$ python sonoshell.py 10.0.8.156 fade 0 10 100
fading volume from 0 to 10 in 11 steps over 100 seconds (10.0000s per step)
set volume to 0, sleeping for 9.9415s
set volume to 1, sleeping for 9.9280s
set volume to 2, sleeping for 9.9693s
set volume to 3, sleeping for 9.9607s
set volume to 4, sleeping for 9.9656s
set volume to 5, sleeping for 9.9667s
[snip]
```
fade volume on 10.0.8.156 down by 5 over 3 seconds:
```
[adam@styx]$ python sonoshell.py 10.0.8.156 fade -5 3
fading volume from 5 to 0 in 6 steps over 3 seconds (0.6000s per step)
set volume to 5, sleeping for 0.5469s
set volume to 4, sleeping for 0.5729s
set volume to 3, sleeping for 0.5633s
set volume to 2, sleeping for 0.5512s
set volume to 1, sleeping for 0.5467s
set volume to 0, sleeping for 0.5614s
```

Comments?