Singleton code

There should only be one SoCo instance for each IP address
Check that SoCo is passed a valid IPv4 address
Deprecate SonosDiscovery and replace with discover function

--HG--
extra : amend_source : c681e5561aa9d33875b3a3476c46254dd72e1dfa
Move relevant constants to discover function. Add __repr__
Fix typos
Fix unjoin error

unjoin only requires one parameter. Current version errors. This fixes
it. Cheers David
Small changes core and data structures tests after abondening using namespaces from ElementTree
Added music service data structures to support the music service plugins
Part 1 of the Wimp music service plugin
Simpler inheritance for data structures, doc and test update
Fixed style issues as per comments in #93
Merge pull request #93 from KennethNielsen/wimp_plugin_current

Wimp plugin part 1
Merging with recent changes in Master
deprecated speaker_ip property for backward compat. Revised __repr__ following code review
Merge pull request #91 from DPH/Fix-unjoin-error

Fix unjoin error
dedent instead of string join for PLAYER_SEARCH
Merge pull request #80 from lawrenceakka/topology

Deprecation of SonosDiscovery