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
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