Solving concurrency problem

There is a concurrency bug when TestNG test spawns multiple threads, which in turn execute test steps in parallel. This happen due to the fact that value from InheritableThreadLocal is inherited and reference to non-synchronized LinkedList is passed to child threads. It could be fixed by creating a copy of LinkedList for every thread, so they are not out of sync.

There is a test reproducing this issues added.

This exception is thrown in case pull request is not applied.
```
java.util.NoSuchElementException
	at java.util.LinkedList.getLast(LinkedList.java:255)
	at ru.yandex.qatools.allure.storages.StepStorage.getLast(StepStorage.java:42)
	at ru.yandex.qatools.allure.Allure.fire(Allure.java:75)
```

And what? U just ignore all steps. Add the following check:
```java
assertThat(lifecycle.getStepStorage().pollLast().getSteps(), hasSize(1000));
```