Make RunNotifier code concurrent.

Squashed commit of the following commits from https://github.com/junit-team/junit/pull/625:

commit a400a3a06d1acc00c1b168af38b84a39f31f2bb3
Author: Kevin Cooney <kcooney@google.com>
Date:   Sat Mar 2 08:49:39 2013 -0800

    Move wrapIfNotThreadSafe() to RunNotifier

commit 38ac72efad6c60b82bc628497921d9fd88bf694f
Author: Kevin Cooney <kcooney@google.com>
Date:   Thu Feb 28 22:37:29 2013 -0800

    Revert changes to build.xml

commit e1172af553d3883bf103a5ee9d0fce711acd5f7b
Author: Kevin Cooney <kcooney@google.com>
Date:   Thu Feb 28 22:13:52 2013 -0800

    minor cleanup

commit b11b5aa0803ec0d54c6f1acda0d92899cf772fe2
Author: Kevin Cooney <kcooney@google.com>
Date:   Mon Feb 25 17:09:10 2013 -0800

    Undo changes to notice

commit a85566fd2b4ad12530b95f443f4175f0e4e683a6
Author: Kevin Cooney <kcooney@google.com>
Date:   Mon Feb 25 17:08:11 2013 -0800

    Make code style consistent

commit 4b8efa1dbf09ae426694fdf9e486f6c125aa24ee
Author: Kevin Cooney <kcooney@google.com>
Date:   Sun Feb 24 17:45:23 2013 -0800

    Update in response to code review commends by dsaff and Tibor17

commit a6fb342a9eb214734957691a91bfa699e05e29bf
Author: Kevin Cooney <kcooney@google.com>
Date:   Sun Feb 24 17:44:29 2013 -0800

    Make RunNotifierTest a JUnit4-style test again

commit 6b39220b7265cb8812773bc3aa1aab4d3ff1deca
Author: Kevin Cooney <kcooney@google.com>
Date:   Fri Feb 15 08:38:43 2013 -0800

    Remove copyright

commit 6a65cd9e8f77d6e09f6c968abb01081e91aa3b95
Author: Kevin Cooney <kcooney@google.com>
Date:   Thu Feb 14 17:50:25 2013 -0800

    Remove unrelated changes

commit 39978162479b0788629a8df52dbf89332c15fdc1
Merge: 10c5130 dbe8a97
Author: Kevin Cooney <kcooney@google.com>
Date:   Thu Feb 14 17:40:40 2013 -0800

    Merge branch 'master' into concurrent-run-listeners

commit 10c5130de13f0e1b8dad924ee9af0ab238bb7863
Author: Kevin Cooney <kcooney@google.com>
Date:   Thu Feb 14 11:03:39 2013 -0800

    Remove mention of jcip-annotations from NOTICE.txt
    Reduce diffs

commit 2873269517f19fa2b8dde849308b8083399d3c4a
Author: Kevin Cooney <kcooney@google.com>
Date:   Thu Feb 14 10:46:09 2013 -0800

    Replace Concurrent annotation with RunNotifier.ThreadSafe
    Update Javadoc
    Delete AddRemoveListenerTest (functionality covered by RunNotifierTest)

commit 58a5a92caa9110f6c348de44f94c74715d9eb263
Merge: 02f1486 cc7d45b
Author: Kevin Cooney <kcooney@google.com>
Date:   Thu Feb 7 08:56:08 2013 -0800

    Remove dependency on jcip-annotations

commit cc7d45b26ba6962fb1945b2045c7750a71e9b18a
Merge: 789c302 02f1486
Author: Kevin Cooney <kcooney@google.com>
Date:   Thu Feb 7 08:55:24 2013 -0800

    Merge branch 'concurrent-run-listeners' into concurrent-run-listeners_remove-jcip-deps

    Conflicts:
    	src/test/java/org/junit/runner/notification/SynchronizedRunListenerTest.java

commit 789c3021b48a5fa48a49057e9d616d8792ecf120
Author: Kevin Cooney <kcooney@google.com>
Date:   Thu Feb 7 08:53:11 2013 -0800

    Remove tabs

commit 02f14867526142e729a85652907b59528e7a25fc
Merge: a04aae1 708d972
Author: Kevin Cooney <kcooney@google.com>
Date:   Thu Feb 7 08:47:40 2013 -0800

    Merge branch 'Tibor17-junit.issues' into concurrent-run-listeners

    Conflicts:
    	src/test/java/org/junit/runner/notification/SynchronizedRunListenerTest.java
    	src/test/java/org/junit/tests/AllTests.java

commit 708d972c904310a65fcf812c343fb9639d29776d
Author: Tibor Digana <tibor17@lycos.com>
Date:   Thu Feb 7 01:07:10 2013 +0100

    threadsafe annotation

commit 796801e640cf2bae2a65c81c58f057bf5a9aba1e
Author: Kevin Cooney <kcooney@google.com>
Date:   Mon Feb 4 17:17:16 2013 -0800

    Remove jcip-annotations dependency; add @Concurrent annotation

commit e30fe38bf6bb7adbfd51ca78474f4762e82cc337
Author: Tibor Digana <tibor17@lycos.com>
Date:   Tue Feb 5 01:18:13 2013 +0100

    AllTests run SynchronizedRunListenerTest

commit 0c358514b816a34f55310f36150c14292cd784f2
Author: Tibor Digana <tibor17@lycos.com>
Date:   Tue Feb 5 01:11:43 2013 +0100

    clarified the purpose of SynchronizedRunListener

commit f8016a41eaa7183d4364a7dd1aa6b5a93aef225b
Author: Tibor Digana <tibor17@lycos.com>
Date:   Tue Feb 5 01:09:25 2013 +0100

    merged from https://github.com/kcooney/junit/blob/c099a99b76ccd985639882369652dfcadb3722b4/.classpath

commit a5e8a7115ae17949d05d6a07fd39fedb24e623db
Author: Tibor Digana <tibor17@lycos.com>
Date:   Tue Feb 5 01:03:44 2013 +0100

    merged from https://github.com/kcooney/junit/blob/41626fd3022c0d73d6f02807be0344a9cf6acafa/src/test/java/org/junit/runner/notification/SynchronizedRunListenerTest.java

commit a04aae196c957241c36019938a95c85417bbb21d
Author: Kevin Cooney <kcooney@google.com>
Date:   Mon Feb 4 13:31:29 2013 -0800

    Add tests in AddRemoveTestListenerTest to RunNotifierTest

commit 5112c1a5c3dd92f3d38de4f83edc910eb7e6dd04
Merge: 41626fd c220ad7
Author: Kevin Cooney <kcooney@google.com>
Date:   Mon Feb 4 13:07:37 2013 -0800

    Merge branch 'Tibor17-junit.issues' into concurrent-run-listeners

    Conflicts:
    	build.xml
    	src/main/java/org/junit/runner/notification/RunNotifier.java
    	src/main/java/org/junit/runner/notification/SynchronizedRunListener.java
    	src/test/java/org/junit/tests/AllTests.java

commit c220ad7a8824c8a73cd8bdf88cbbd1ae3de3b021
Author: Tibor Digana <tibor17@lycos.com>
Date:   Mon Feb 4 00:42:22 2013 +0100

    using COWAL + backward compatible + SynchronizedRunListener

commit 41626fd3022c0d73d6f02807be0344a9cf6acafa
Author: Kevin Cooney <kcooney@google.com>
Date:   Sun Feb 3 09:54:24 2013 -0800

    Cleanup implementation and tests

commit c099a99b76ccd985639882369652dfcadb3722b4
Author: Kevin Cooney <kcooney@google.com>
Date:   Sat Feb 2 17:26:39 2013 -0800

    Fix equals method for SynchronizedRunListener

commit 1d6914b1fb211febb68b4713d40c46d3c6c1cca6
Author: Tibor Digana <tibor17@lycos.com>
Date:   Fri Feb 1 00:42:38 2013 +0100

    backward compatible, SynchronizedRunListener, removed EqualRunListener

commit 21a926e47461f01fdfecfc45c0b5cc0f61b7d8d5
Author: Tibor Digana <tibor17@lycos.com>
Date:   Wed Jan 30 20:01:55 2013 +0100

    problem to remove synchronized listener

commit 20c6b53e0ff2625fa6b82d3984d869b6bcfb1e55
Merge: 573828c 27ba66f
Author: Tibor Digana <tibor17@lycos.com>
Date:   Tue Jan 29 19:37:25 2013 +0100

    Merge branch 'master' of git://github.com/KentBeck/junit into junit.issues

commit 573828cb296a6d4e8d9b9b12c0af836e856b61d9
Author: Tibor Digana <tibor17@lycos.com>
Date:   Sun Jan 20 22:38:12 2013 +0100

    AllTests

commit 497e6ca82bdf80ed4c327a840593c40112adcfcc
Merge: a691962 3aca014
Author: Tibor Digana <tibor17@lycos.com>
Date:   Sun Jan 20 22:29:44 2013 +0100

    Merge branch 'master' of git://github.com/KentBeck/junit into junit.issues

commit a69196297ed7d1a3725e85714942deac199d9602
Author: Tibor Digana <tibor17@lycos.com>
Date:   Sun Jan 20 22:28:12 2013 +0100

    #realUsage test, simplified

commit d2f1710bcf7e1b2f1949372318ac4bb1b90a8c49
Author: Tibor Digana <tibor17@lycos.com>
Date:   Thu Dec 20 16:06:19 2012 +0100

    1E3 -> 1000, 1E2 -> 100

commit 4df3e8119adce8a50d66d6d91c83dbdd045095ed
Author: Tibor Digana <tibor17@lycos.com>
Date:   Wed Dec 19 19:41:23 2012 +0100

    synchronized substituted by thread safe collection