adapt for orogen backport the TypelibMarshaller from the rtt2.0 branch

The isse we are trying to fix here is that some types are not
marshalled as themselves, but as intermediate types. Until now,
there was a HUGE hack that was simply testing for type_name + _m,
as orogen was generating these types for intermediate types.

This does not work for purely opaque types, only for types that
contain opaques.

The proper fix is to have the type marshaller object tell us
what on-disk type it is using. That is what this patch is doing.

until now, the logfile implementation was needing that the data passes two
layers (and, more importantly, one buffer) before writing to file. Just
simplify this unneeded, over-complex design and pass the data directly to file.

Stream indexes were allocated using a global counter. This means that, if one
creates two logfile sequentially with (let's say) 10 and 20 streams each, then
the second set of streams would be numbered [10, 19].

This causes a problem for long-running processes, or for processes which would
create new logfiles often. The problem does not so much lie on the logging
process itself (in its case, the logging index does not matter much), but it
does matter on the reading side as the log streams are usually stored in an
array so that they can be addresses by their index. If there is too much holes,
that causes some problems.

This commit creates a Logfile class which takes care of the stream index
allocation per-file instead of globally, thus fixing the problem.

This commit implements the following:
* it uses the new DataDrivenTask ability to give away which ports have
been updated to selectively update the log file. No more unnecessary
samples in !
* it supports the latest way to marshal data, thus handling data that
contain std::vector (and later on other data structures I guess)
properly.

The test task has been updated so that it can check those new
properties.

The component now relies on Orogen-generated modules to provide the necessary support:
* a fake type transporter which provides an untyped buffer with the type
marshalled in it
* a tlb file for the associated types.