Rework set audio output device, configurable peerConnection timeout. (#472)
Previously when `switchActiveDevice` is called, it doesn't remember
that preference for newly attached audio tracks. Reworked setSinkId to
model audioContext handling.
Also fixing a potential timing issue when a new track can be created
without respecting default input deviceId.
A minor cleanup by removing redundant `RemoteTrack` type.