webui: return service unavailable (503) rather than bad request (400) for unavailable streaming
mpegts input: simplify and make faster the TS input stop procedure
WEBUI: Add more documentation for Debugging tab, fixes #2398
WEBUI JS: Debugging tab - change save to apply
global config: allow to prefer picons or channel names for auto icon urls, fixes #2403

- also do file access checks to choose
WEBUI JS: Add channel icon reset
Makefile: fix distclean
profile: fix profile_chain_open (for profiles without muxing)
profile: move all stream chain code to profile.c from htsp_service.c
profile: added unique id (service or channel) to profile chains
profile/subscription: use profile chain everywhere, add profile refcounting
mpegts: allow to remove dvb service
dvb get string: allow to override charset when auto detection fails, fixes #2407
profile: fixed copy-and-paste error
htsp server: fixed wrong condition (profile_chain_work)
webui: changed rights for playlist, dvrfile, fixes #2409

- /dvrfile requires (advanced) streaming or recorder rights
- /play requires (advanced) streaming or recorder rights
- /playlist requires rights depending on functionality
  - dvr playlists requires recording rights
  - channel and tags playlist requires streaming rights
muxer libav: review again the h264 filter payload free code
service mapper: fix the abort due to missing streaming target initialization
webui: the /play redirector - add more user-agent direct streaming, fixes #2412

- 'VLC/'
- 'MPlayer '
- 'Lavf/' (ffmpeg, libav)
- shoutcastsource (some media players?)
webui: /play - direct streaming for no user-agent providers, remove VLC for direct

(note vlc is fine with playlists and shows the correct title for matroska)