Alter ZGS tests to include satellite speakers.

Modification of zone group topology tests in preparation for adding parsing of
satellite elements in zgs state XML.
Add Satellite element parsing in ZoneGroupState

SoCo instances are now created for nested Satellite elements in ZGS XML
if present, and added to all_zones and member sets.
Refactor _parse_zone_group_state for deduplication

Logic shared between the loop parsing member elements and the inner loop
parsing nested satellite elements pulled out into an additional private method.
Move parse_zg_member method into fn scope

As per recommendation in SoCo/SoCo#235.
Merge upstream master into satellites-from-zgs

Conflicts:
	unittest/test_core.py
Fix lint errors (line length)
Add method to get item absolute album URI
pinning pylint to avoid travis problems
Merge pull request #245 from simonalpha/satellites-from-zgs

Parse and process satellite elements from zone group state
Merge pull request #240 from dajobe/get-album-art-uri

Add helper method get_item_album_art_uri to get album art full uri
Initial searching patch

New methods:
- search_track
- get_albums_for_artist
- get_tracks_for_album

with supporting utility function url_escape_path and
compatibility function quote_url
Add initial tests
(url_escape_path): Add doctest suggested from PR review
(search_track): Add fuzzy arg and return empty list on exception
Merge "Alternative search musiclibrary" (PR #249) changes

Overwrite soco/core.py with Kenneth Nielsen's approach.
Update tests for changed api

Removed reference to max_items arg.
Update documentation words from PR review

Add missing '+possible'
simplify append from PR review
Convenience spelling
Use *args, **kwargs for wrappers and insert args[0]