Squashed commit of the following:

commit 8c629959135715337e7caf809ee2e7e7d1677755
Author: fasseg <frank.asseg@googlemail.com>
Date:   Fri Apr 26 12:49:16 2013 +0200

    made use of the already available CountDownLatch in the TestListener

commit 2a977281ecfc3e2d8252ed48e5d8bc5cf1750a70
Author: fasseg <frank.asseg@googlemail.com>
Date:   Fri Apr 26 11:46:16 2013 +0200

    added synchronized block around Thread.sleep

commit ce9eaa65fe0a99b9381d491c004c6854ca505cdc
Author: fasseg <frank.asseg@googlemail.com>
Date:   Thu Apr 25 14:11:28 2013 +0200

    changed TestListener to use RecordingCanges and added a retry mechanims to give the veent time to propagate

commit 063c84b23dbedad0d2f0ab53ecd79fba2a66db47
Author: fasseg <frank.asseg@googlemail.com>
Date:   Thu Apr 25 13:41:48 2013 +0200

    added creation of repo directory to mode-1710 test

commit 5478dde35cb8704079e9215ff55fddd79366ed50
Author: ajs6f <ajs6f@virginia.edu>
Date:   Wed Apr 17 10:56:21 2013 -0400

    Added simple integration test

commit fa493d6b663ca610cc22d58cd0ea608874ec5810
Author: ajs6f <ajs6f@virginia.edu>
Date:   Tue Apr 16 15:09:49 2013 -0400

    More Javadocs

commit 91977db21d8aa162494f26160f4ba1acacb09d50
Author: ajs6f <ajs6f@virginia.edu>
Date:   Tue Apr 16 13:23:12 2013 -0400

    Added and connected factory machinery

commit 06bcd8397c67daf0f015b986f5669ed4d7c17c74
Author: ajs6f <ajs6f@virginia.edu>
Date:   Mon Apr 15 17:09:12 2013 -0400

    Removed nodeChanged() method

commit 2886c761fa816b3b7b4d24a9ffa03b5ef49fca3f
Author: ajs6f <ajs6f@virginia.edu>
Date:   Mon Apr 15 17:06:43 2013 -0400

    Renamed contract, added explanatory comments

commit 17b5c5eef40059f206723707cb5c7e23b13f831a
Author: ajs6f <ajs6f@virginia.edu>
Date:   Mon Apr 15 16:55:51 2013 -0400

    Strawman contract for review by MODE folks
merge mode-1908