Multiple changes to the performance testing module

- Add test annotations.
- Always guarantee that all listeners execute.
- Report multiple errors from listeners.
- Improve implementation by using finer grained statements.
Add test to check the dynamics of the test runner