SYNTHESIZER: Added a RingBuffer class, and its test

Signed-off-by: Gama <misept.dieseneuf@gmail.com>
TESTS: Added a test for small block sizes

Signed-off-by: Gama <misept.dieseneuf@gmail.com>
Tests: Added a performance test, computing a fixed amount of data

Signed-off-by: Gama <misept.dieseneuf@gmail.com>
SYNTHESIZER: Moved a function from test to actual synthesizer functions

Signed-off-by: Gama <misept.dieseneuf@gmail.com>
SYNTHESIZER_COMMON: Removed too restrictive assert

A value tested for being multiple may be null - we should then output 0.

Signed-off-by: Gama <misept.dieseneuf@gmail.com>
TESTS: Added synthesizer performance test set sizes

Signed-off-by: Gama <misept.dieseneuf@gmail.com>
MIXER: Now operating per-sample, for better flexibility

This will allow us to deport the actual loop over output block in the
outmost possible layer (the synthesizer itself).

Signed-off-by: Gama <misept.dieseneuf@gmail.com>
SYNTHESIZER: Now using the ringbuffer

This will allow any block size, even one whose size changes.

Signed-off-by: Gama <misept.dieseneuf@gmail.com>
GENERATORS: Now performing better phase initialization

Still far from perfect, the SetPhase() method should eventually be used.

Signed-off-by: Gama <misept.dieseneuf@gmail.com>
MISC: Various style fixes

Signed-off-by: Gama <misept.dieseneuf@gmail.com>