[cmyth] Resolve deadlock in cmyth_livetv_chain_switch

Normally "865: ref_release(rec->rec_livetv_file)" never destroys the file.
It decrements only 'ref_count' because the file is hold by the chain itself.
This assumption must be known. If the chain is destroyed from another place,
the file gets destroyed here causing a deadlock (by trying to lock the
control connection for sending DONE to the backend).
It is better to avoid any confusion and destroy the file outside the mutex.

For sample, usage of SET_CHANNEL frees the chain and then on the next file
switch we have a deadlock.
[cmyth] Review Live TV channel switch

- File destroy needs to lock the connection mutex, so we have to release the
  Live TV chain out off latch.
- Since chain struct has changed, copy needed fields from old chain.

Affected functions: cmyth_recorder_set_channel, cmyth_recorder_change_channel
[mythtv-cmyth] Improve MythRecorder::SetChannel

This adds improvements from SpanLiveTV also to SetChannel and prepares
SetChannel for being used again.
[mythtv-cmyth] Use SetChannel

Prefer SetChannel instead of reopening the Live TV stream if possible.
We try to reuse our assigned active recorder if this is possible for the
new channel (channel available and not locked to a different multiplex).
The old method of reopening the whole chain is kept as fall back.
This should speed up the channel switching a bit, because we avoid rechecking
all inputs.