[mythtv-cmyth] Recording file: Release connections on close
[cmyth] Connect to the correct host in cmyth_conn_connect_file

The function cmyth_conn_connect_file must establish the data connection
to the same host as the control connection. Otherwise we might
send REQUEST_BLOCK on the control connection to host A while
expecting the data packet from host B.

For recordings made on a different (slave) backend, the old code
connected the data socket to the host given in the proginfo (slave)
whereas the given control connection could be established to a
different host (most likely the master backend).
In those cases, REQUEST_BLOCK was sent to the master backend,
but the data was expected to be received from the slave backend.

The new code enforces control and data connections on the same host.
A file connection to a slave backend can be established by first
creating a control connection to the slave backend and then calling
cmyth_conn_connect_file using that control connection.
[mythtv-cmyth] Dedicated control connection for recording playback

This creates a dedicated control connection for recording playback.
The current implementation will always request the stream from the
master backend.

Future implementations should adapt to MythTV's ProgramInfo::GetPlaybackURL
and first try to read the file locally and as a fallback play it from
the slave it was recorded on.
[cmyth] Align buffer sizes

This adds a buflen parameter to cmyth_livetv_chain_setup to specify
the receive buffer from outside.

In addition this removes setting tcp_buflen to the value returned by
getsockopt(SO_RCVBUF). The reason is that getsockopt will return different
values depending on the platform. Linux systems double the value since
they reserve half of the buffer for metadata. Other systems don't do this
and since that value is reused as input for setsockopt when starting playback,
we create buffers of the doubled size.
[mythtv-cmyth] Define common buffer sizes

- TCP receive buffers are set to 128000 (like MythTV's MythSocket class)
- For chain, file and path, buffer is only used to receive backend response of query ANN FileTransfer.
  So 64 bytes is large enough. This value is defined by RCV_BUF_DATA_SIZE.
- For artworks downloader, the buffer size is fixed to 32000. This value is defined by RCV_BUF_IMAGE_SIZE.
- For control, buffer is fixed to 32000. This value is defined by RCV_BUF_CONTROL_SIZE.