Thread safe listener

There was a problem with the listener implementation in that it did not correctly handle multiple threads executing tests. This pull request fixes that.

I have also added tests to the listener, and in doing so had to refactor the concern for maintaining the test report directory. The writer still needs tests, and integration tests are needed - but it's a start =) You may also wish to modify the class packaging as it's a bit flat.

Lastly, I moved the test-reports directory under ./target, you may not like this. To me, it should be under ./target/scala-x.xx, however I don't have time to get around to that right now.