Add HEOS Player provider (#2986)
* Initial commit, ability to connect to a HEOS system and play URL
* Added more function handling
* Some code improvements, fix disconnection done too late
* Map music sources to inputs
* Make sure players are registered, even when they are marked as unavailable
* Build proper source list
* Keep internal heos reference in player
* Set dynamic attributes after player setup
* Implement grouping
* Grab group information when players are set up
* Handle group change events
* Build source list in provider
* Minor rearrangement
* Make sure player update event is cleaned up
* Some cleanup
* Remove some leftover logging
* Handle controller event in provider
* Split player updating into dedicated events
* Populate current_media when we're not playing
* Set sample rate configs
* Handle connection errors
* Temp troubleshooting commit
* Clean up some code and comments, adjusted some minor things
* Use fallbacks on mappings
* Disable player re-enabling for now
* Handle AUX inputs
* Handle player change event from HEOS
* address PR review comments
* Reduce safe max sample rate and bit depth for older devices
* Don't need to set credentials, unused right now