Simplified Benchmark API

Benchmark system have been slimed down by using less virtual interface
and more Concepts. Benchmarks are now running Experiment under a given
protocol of measure. Each run is then later processed by various Metrics
that exploit the raw measures. Existing benchmarks have been amended to
use this system.

Changes includes :
 - Simplification of the experiment interface require dot be implemented
 - More metric and statistics including speed-up between experiment or Gb/s
 - Statistics now use boost::accumulator for computations and are computed on
   a single set of samples
 - Benchmarks now support custom command line arguments retrieval so a single
   benchmark executable can be run with variable parameters without recompilation
 - Protocols now allow for time-based looping of the experiment or fixed number of
   iterations.
 - Timing overhead is not required anymore
 - Benchmarks themselves looks more like a regular functions and can be
   controlled in a finer way.