Original benchmark PoC from pisha

THis Gather all the code propsoed by psiha on makign benchmark
faster and more stable to compile and run.
Introduce libnt2_unit

This patch provides a semi-compiled lirbary for handling NT2 unit
tests along with simplification of its dependencies and implementation.
Introduce libnt2_bench

This patch provides a semi-compiled benchmarking library that
streamlines the way we wrote benchmarks in NT2 and make benchmarks
definition simpler and more flexible.
Fix unit tests with modified behavior due to header rearrangement
Improvement in benchmark and unit test implementation

The benchmark system now use the fully compiled perform_benchmark
implementation. This remove the need of CRTP adn other template
machinery from experiment codes. Redundant code have been removed
and compliance with dynamic library support have been enforced.

The Unit Test code  have been optimized for better compile time
and automatic supprot for fusion sequence with numerical semantic.
First reimplementation of the NT2_TIMING macro
add operator common include in tofloat/toint
remove unnecessary ulpdist includes from tests
Fixed doc for the last time
Fixed all includes in existing autobench
Complete NT2_TIMING support
Test include fixes for MSVC
Added rationale about ULPDIST testing
Remove incorrect include in of_size
adapting type.complex.generative for new name of unit module