[Generator] Add PRODUCT generator

This is a first version of an XML-to-product generator.
A generic multi-PCB and multi-program product could be defined using a
simplified (and perhaps optimized) XML schema similar to the one provided
by the example.

The Product builder will generate:
1. three files for each PCB, containing the SETUP, CLEAN and STEPS code
   fragments, as well as a main file for each of the XML defined
   Program Control Blocks
2. one file for each Program, containing the SyncBuffers allocation, the
   definition and configuration of PCBs and their connections. This file
   exposes a single entry point which allows to invoke such a program.
3. a pair of header and source PRODUCT files which exposes the single
   entry point "int product_run(int program_id)" which allows to select
   and run the program specified by ID

NOTE: This generator is based on the assumption to use local buffers in place of
using BufferManager assigned ones.

The provided example XML product defined two different programs, with different
network complexities:
1. a simple three stage pipeline
2. a four stage pipeline with two parallel (double-stage) PCBs.<
These should be enough to verify the generality of the proposed solution.

Signed-off-by: Patrick Bellasi <derkling@gmail.com>