dvb.media_addon: Support dumping of the raw mpeg ts data.

- Main purpose is to debug a/v synchronization issues by playing the dumped
  mpeg ts data in alternative video players (like ffplay or MediaPlayer) and
  see how those behave.

- The commit diffs shows some coding style violations (max. line length) that
  show up throughout the whole DVBMediaNode class. Those will be fixed in the
  next commit to keep a clean separation between the different code changes.
dvb.media_addon: Fix some coding style.

- Fix max line length, switch statement style and some pointer comparisons in
  if statements. No functional change intended.
  Note: There may be more coding style violations lurking.
FFMPEG Plugin: Refactor out copying of audio format properties.

- Main reasons for this refactoring of negotiation steps are to increase
  readability and to be on par with the video path.

- Rearrange some negotiation steps in video path to be on par with audio path.

- Add documentation for the new method and update existing documentation
  accordingly.

- No functional change intended.
FFMPEG Plugin: Implement audio input buffer padding.

- Padding is required by FFMPEG for correct operation of all audio decoders.
  FFMPEG performs some speed optimizations under the hood that may lead to
  reading over the end of the chunk buffer wouldn't there have been padding
  applied.

- Resolve TODOs by unifying fVideoChunkBuffer and fChunkBuffer back into
  fChunkBuffer because audio path is responsible for freeing fChunkBuffer now.
  Resolved TODOs apply to the replacing fVideoChunkBuffer variable by
  fChunkBuffer, rename some methods by removing the "Video" part, collapse two
  methods into one (_LoadNextChunkIfNeededAndAssignStartTime()).
  No functional change intended.

- Enhance "logging stream to file" functionality to write to distinct logging
  files for audio and video. Before this commit one could only log video
  streams. But with unifying the _LoadNextChunkIfNeededAndAssignStartTime()
  audio streams gained the logging functionality for free. But now audio and
  video streams would be written in the same log file when watching a media
  file containing both audio and video. This is prevented by the distinct
  logging mentioned above.

- Update documentation accordingly.
FFMPEG Plugin: Fix correct decoding of first video frame.

- The first decoded video frame was always zero bytes large, due to passing the
  wrong linesize to the color conversion function. The field containing the
  right linesize (fHeader.u.raw_video.bytes_per_row) simply wasn't initialized
  yet. Fix it by updating fHeader first before applying deinterlacing and color
  converting to the decoded video frame.
  Tested with mpeg2_decoder_test where the first picture now isn't empty
  (black) anymore.
FFMPEG Plugin: Fix performance regression on video path.

- For best performance the color conversion function expects a memory location
  aligned to 32 bytes. Without that alignment the color conversion function
  falls back to a slower conversion path. This fix was measured via
  DO_PROFILING and tested with various 1080p video files.
FFMPEG Plugin: Small refactoring in audio path.

- Lazy initializing the fDecodedData variable fits best in
  _ResetRawDecodedAudio() as fRawDecodedAudio is all about managing properties
  of fDecodedData. So fDecodedData having some memory allocated is seen as a
  property here.

- Updated documentation accordingly

- No functional change intended.