Added voiceover feature

Adds a mechanism for interrupting the playhead of a given zone, playing a URI, and returning the playhead, volume, and playing state to its original position. Useful for things like playing a doorbell, a build notification, or any number of other things. For ease of integration, calls to `Speaker.voiceover(uri, volume)` are blocking until the state has been reset.

As it's not a real "endpoint" on the Sonos API, I propose a new `Sonos::Features` namespace to handle things that build on top of existing endpoints, but don't align to the UPNP endpoint structure.