Fix for `Internal use only` in RunListener

If you write your own framework, anyway you have to call `RunNotifier#addListener` `RunNotifier#removeListener`.

The `addFirstListener` is architecure issue if saying for internal use and makeing it public.

I removed `RunNotifier#addFirstListener` and set the first internal listener quite easily.
So added constructor `RunNotifier(RunListener firstListener)` and refactored `JUnitCore`.
The internal use method `RunNotifier#addFirstListener` is not used in TestNG and surefire.