Fix for `Internal use only` in RunNotifier

If you write your own framework, anyway you have to call `RunNotifier#addListener` `RunNotifier#removeListener`.

The `RunNotifier#addFirstListener` is architecture issue if saying for internal use in doc and making 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.