Solving concurrency problem

- Error occures when one TestNG test spawns multiple child threads, which
  execute test steps in parallel. This is fixed by creating a copy of a
  step storage for every thread using InheritableThreadLocal facilities.