ScreenSaver: rework some of the fixes

* Use a BTextView for the "no preview" text again, as Skipp_OSX pointed
this allows it to word wrap as needed with any font bigger than 10pt.
* Show a black screen rather than the "no preview" text for Darkness and
when a screensaver fails to load. This matches what screen_blanker will
do.
FFMPEG Plugin: Refactor out actual audio decoding part.

- Main reason for this refactoring is to increase readability and thus make the
  audio decode path more comprehensible.

- Added documentation for the new method accordingly.

- Small refactoring for detecting when to update fRawDecodedAudio's properties.
  This is a preparation step for factoring out the flushing of the
  fDecodedDataBuffer in a later commit.

- No functional change intended.
FFMPEG Plugin: Refactor out chunk loading in audio path.

- Main reasons are to increase readability of audio path and to demonstrate
  that chunk loading in audio and video path is the same code that can be
  focused in one method (instead of two at the moment). Added a TODO for
  collapsing both methods into one and the conditions that must hold true to
  do so (just in case I'll be hitted by a bus and someone else has to proceed).
  Collapsing is scheduled for a later commit.

- Added documentation for the new method accordingly.

- Make use of full line length in comments of
  _LoadNextVideoChunkIfNeededAndAssignStartTime().

- No functional change intended.
FFMPEG Plugin: Refactor out moving audio frames from buffer.

- Main reason for this refactoring is to increase readability and thus make the
  audio decode path more comprehensible.

- Added documentation for the new method accordingly.

- No functional change intended.
FFMPEG Plugin: Refactor out checking of invalid conditions in audio path.

- Main reason for this refactoring is to increase readability and thus make
  audio decode path more comprehensible.

- Added documentation for the new method accordingly.

- Small change in calculating the decoded data size to clear when error occurs
  during decoding. This way it is more readable and more consistent with
  calculations of decoded data size on other locations.

- No functional change intended.