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 interface

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.