Does the grunt work of comparing any of the app-supported values
against a given Accept* header string.

Portions of this code base on Aura.Accept library.

@param array   $supported    App-supported values
@param string  $header       header string
@param boolean $enforceTypes If TRUE, will compare media types and sub-types.
@param boolean $strictMatch  If TRUE, will return empty string on no match.
If FALSE, will return the first supported element.

@return string Best match