AudioCodec: refactore getters

* Do not duplicate getters with AudioFrameDesc (getSampleRate,
getChannels...).
* Keep symmetry with VideoCodec (rename getFrameDesc to
getAudioFrameDesc).
VideoCodec: refactore getVideoFrameDesc
Generators: add documentation for attributes
GeneratorVideo: throw exception if no codec
AvOutputVideo: clean encodeFrame

Remove comments.
VideoFrame: setPixel takes a reference
Context: add typedef to manipulate options

Add OptionArray and OptionMap.
util: add typedef OptionArrayMap

* Easier to manipulate complexe data (in AvTranscoder and in other
libraries...).
* Remove forward declaration of 'Option': need to include 'Context' to
get 'OptionArray' typedef.
util: clean getPixel/Sample functions

* Test NULL pointer to avoid possible crash.
* Do not skip format name with no video track possible.
VideoTransform: clean init

Remove assert which are already tested before calling init (private)
function.
Transcoder: remove add( StreamTranscoder& stream )

We delete all the 'StreamTranscoder' in destructor of 'Transcoder':
can't add a reference to a stream from outside like this.
StreamTranscoder: update verbose of processTranscode with a subStreamIndex

Symmetry with other processTranscode method.
Transcoder: add getter to a specific stream

* An external library could need to update a specific stream during
process.
* Also add a getter to the current Essence in StreamTranscoder, for the
same reason above.
pyTest: add script to test setFrame during process

* 2 tests in the python file:
     * Generate a video stream, and set its frame during process.
     * Generate a audio stream, and set its frame during process.
* Swig: add template to have access to DataBuffer methods in bindings.
* IInputEssence: add virtual method setFrame. Reasons:
     * avoid cast when setFrame.
     * can access this feature whithout issue in bindings.
     * it could be a case to set some frames of a stream which is from
an input file (still not implemented).
StreamTranscoder: add a more explicit messages when verbose
Transcoder: rename getStream to getStreamTranscoder
pyTest: add a blanck line at the end of files
AvInputStream: remove getPacketDuration

* The functions returns duration of last packet added.
* Not what we expected, and not used.
Transcoder: remove _outputFps attribute

* The method setOutputFps does not do what the user expected: the fps of
Transcoder is only used for progress bar (no consequencies in transcode
process !).
* This kind of method must be implemented in the outputStream on which
we want to update the fps.
AvInputAudio: rename getNextFrame to decodeNextFrame

This private function decodes the next frame (call
avcodec_decode_audio4).