raop: Use two port numbers for timing/control port

Both client (PulseAudio) and server (Airplay device) use timing
port and control port for communication, and generally client and
server have their own port number.

This patch introduces additional port numbers so that PulseAudio
can correctly handle the case where client port and server port
are different.
raop: Honor encryption capability given by a remote device

Some AirPlay device (likely a third-party one) may not support
RSA encryption. In such a case we fall back to no encryption mode.
raop: Resume smoother for correct latency calculation

When a state transits to PA_SINK_RUNNING, the previous state could be
PA_SINK_IDLE. The previous code failed to resume smoother in such a case.
Failure to resume smoother led to calculate wrong latency in sink_get_latency(),
because pa_smoother_get() returned a garbage value.

In fact, it is safe to call pa_smoother_resume() regardless of the current
smoother suspension state. It checks the suspension state and does nothing
if already resumed.

This patch always resumes smoother at PA_SINK_RUNNING, so that
sink_get_latency() caluculates correct (or at least, somewhat reasonable)
latency values.
raop: Set precise wake up timer for rtpoll

Due to timer precision limitation, poll(2) may sleep longer or shorter
than originally specified. Therefore it is not safe to always specify
the fixed sleep interval for poll(2) (pa_rtpoll_set_timer_relative())
when executing some periodic tasks that are sensitive to precise timing.

This patch calculates when the thread should wake up to transmit
the next audio packet, and try to amortize the jitter caused by the
actual poll sleep duration.

This patch eliminates the audio glitch issue in Pioneer VSX-43 (and
possibly in other devices as well).
raop: Set poll timer when entering the RUNNING state

When pausing music, the raop module enters the IDLE state.
If you resume the music right after pausing, the module enters the RUNNING
state but the poll timer is left expired.
This prevents the main thread loop from sending audio packets.

To avoid this situation, set the poll timer again when the module enters
the RUNNING state.
raop: Cleanup pollfd when the RTSP state enters TEARDOWN

It seems that STATE_DISCONNECTED never happens in usual cases,
which left pollfd uncleaned even after the socket fds were closed in
the previous version. This led to PulseAudio hang up when starting music
after the previous connection is torn down.

This patch fixed the issue, thus fixes the hang up issue in such a case.
raop: Honor memchunk index when encoding chunks

In some cases memchunk index is not zero when encoding memory chunk
blocks. This would lead to damage sound quality in some music
players (e.g. Rhythmbox).

This fix was found thanks to Matthias, who reported that his ALAC
codec support fixed the issue.
https://bugs.freedesktop.org/show_bug.cgi?id=42804#c30
By carefully looking at the patch I found an issue in my code.