don't request streams when opening the demux, it is always done soon after
when the DMX_SPECIALID_STREAMCHANGE packet comes in
[AE/osxsink] - distinguish between passthroughnative and passthroughbitstream in the findsuitableformat method
[AE/osxsink/coreaudio] - split registration for the devicelist changed callback and registration for the default output device changed callback and
move the coreaudio callback registration methods to CCoreAudioDevice and add possibility to suppress the defaultdevicechanged callback for a given time
[AE/osxsink] - open the device before setting hogmode (as sethogmode relies on it!)
[osx/coreaudio] - suppress default output device changed callbacks for 2 seconds when setting physical and virtual formats
[url] use IsProtocol in place of GetProtocol
[fileitem] drop GetAsUrl() as GetURL() does the same thing
[pvr] use Refresh() instead of Update() to refresh directory listing

To get rid of the default value for strDirectory in Update() and to gain control of whether we want to clear the cache or not, this will use Refresh() instead of Update() in all PVR windows to refresh the directory listing.
[pvr] cleanup: removes forgotten commented code block
[addoncallbacks] check key is non-null before use
Merge pull request #4975 from Memphiz/osx_fix_devicechanged_recursion

[AE/osxsink] - fix possible device changed loop when using passthrough
[dav] have GetStatusTag() iterate over XML elements, not nodes.

As things are, if there are no children of the passed element, we'll have a NULL dereference.
[dav] iterate over XML elements not Nodes in CDavDirectory::ParseResponse() as we assume elements inside the loops anyway
[rssdirectory] have a helper for getting the value of a child XML element rather than calling GetText() and assuming a non-NULL response
[edl] use FirstChild()->Value() rather than GetText() in parsing cut times
[pls playlist] use FirstChild()->Value() rather than GetText() without NULL checks
[advancedsettings] use FirstChild()->Value() rather than GetText() when reading DNS cache entries
[fanart] use FirstChild()->Value() rather than unchecked GetText().

NOTE: Potential change in behaviour in that if a url attribute is specified in the <fanart>
node and <thumb> children are specified without a value, it used to just take url as the
url.  This was not intended, however, as url is supposed to be the base url, not the full url.
[buttontranslator] tidy the MapRemote and MapJoystickActions functions to not use unchecked GetText()
[cosmetic] indenting