PulseAudio: stricter pa_stream_peek() validation.

An uncommon condition in the pa_stream_peek function
('no data at current read index') wasn't handled properly
and could lead to a segfault.

The commit also adds checks for other pa_stream_peek
error scenarios.

Fixes #1316

(cherry picked from commit e740ea5e7ffb823eea3edd31e3519de36d602354)
PulseAudio: don't call pa_stream_drop() for empty pa_stream_peek().

It is now explicitly spelled out in the PulseAudio docs that one
must not call pa_stream_drop() when the buffer peeked via
pa_stream_peek() is empty.

This change fixes our calls to pa_stream_drop() to comply with the
new wording.

Fixes #1317

(cherry picked from commit 63f35d6a097dcf33ad0a27d8ed90572a64cae925)