AVWriter: add silent stream param

* Boolean param for each audioSubGroup.
* Hide or display the params necessary to rewrap or transcode an audio
stream.
* Simplify the ensureAudioIsInit function, by separate the 3 audio cases
of the plugin:
     * dummy (silent)
     * rewrap
     * transcode
AVWriter: update labal of audioSubGroupParam

Display the index of the audio stream in the label of the corresponding
group.
AVWriterPlugin: refactoring

* Renamed updateAudioStreamParams to updateAudioParams.
* Renamed updateAudioPresetParams to updateAudioCopyStream.
AVWriterPlugin: process all streams of audio file when inputStreamIndex=-1
AVWriterPlugin: do not open output file if already set

By using the new variable _lastOutputFilePath.
AVWriterPlugin: manage video preset

* Get value from OFX params if custom profile is specified.
* Only set the profile of the output video stream if an existing vieo
preset is specified.
AVPlugin: refactoring

* Writer:
     * struct AVProcessParams: suppress unused variables.
     * update comments.
* Reader:
     * update comments.
     * add @todo.
AVWriterPlugin: suppress dependencies to all LibAVPreset

* All is manage by avTranscoder for video and audio presets.
* Warning: format presets are not manage.
AVWriterPlugin: suppress dependency to pixdesc (ffmpeg)

* No more dependencies to ffmpeg in AVWriterPlugin!
AVWriter: improve display of video tab

* Add a new OFX param: _paramVideoCustomGroup, which contains all video
params useful when custom preset is specified (except the
videoDetailGroup).
* Hide or show this group depending on the video preset specified.
AVWriterPlugin: suppress dependencies to all LibAVPreset

* Suppress dependencies:
     * LibAVPreset.
     * LibAVFormatPreset.
     * libavutil/pixdesc
AVWriterPlugin: improve visibility when select a video / audio preset

* Get an empty "Details Group" for video and audio when select an
existing preset.
* Because of a problem with the nuke interface, "Details Groups" are set
as tab. And the solution to get these groups empty is a hack: set a
specific codec name with no option details when select an existing
preset.
AVWriter: separte init output file and init video stream

* 3 functions to set the output:
     * initOutput: init the output file.
     * initAudio: add audio streams to the output
     * ensureVideoIsInit: add video stream to the output, if necessary.
* Only ensureVideoIsInit is called at each frame (because we need the
current rod).
* Refactoring: renamed _initOutpuFile to _initWrap (avoid confusion with
the new functions name).
AVWriter: refactoring

* Suppress _initAudio flag.
AVWriterFactory: add new tab About

* Display for each libairies used in avTranscoder:
     * name
     * licence
     * version
AVPlugin: refactoring

* Update description of Reader and Writer.
* ReaderProcess: suppress unused TUTTLE_LOG_ERROR.
* WriterPlugin: update @brief of class.
AVWriterFactory: refactoring

* Define constants for the prefix of OFX parameters name:
     * kPrefixFormat = "f_"
     * kPrefixVideo = "v_"
     * kPrefixAudio = "a_"
AVWriterFactory: add prefix for all OFX params created from AVOptions
AVWriter: create a custom video profile if specified

* The complexity of setting the video stream is moved to the
avTranscoder.
* This is the same logic for audio: get an existing preset if it exists,
or create a custom one and set the stream with it.
AVWriterPlugin: fetch custom video params

* AVWriterPlugin:
     * add struct CustomParams to manage the custom video OFX params
(and in the futur format and audio).
     * add these params to the custom video preset if it is the one
selected in the list of video presets.
* Util: add getOptionNameWithoutPrefix function.