#47 Code refactoring

I want to propose code refactoring I made. I wanted to improve code readability.

- Refactored BenchmarkBase class and extracted:
  - IBenchmark which represents a benchmark
  - IBenchmarkRunner which runs both singlethreaded and multithreaded benchmark for the given container and benchmark
  - IBenchmarkMeasurer which measures the benchmark
- Removed verification logic from benchmark classes. It should be in container adapters unit tests.

What needs to be done:
- Add unit tests that covers Adapters (verify logic from benchmarks)
- Refactor and simplify SinglethreadedBenchmarkMeasurer and MultithreadedBenchmarkMeasurer.