CURATOR-131 use iterator.remove instead of foreach

When iterating over a collection, if we try to remove elements that
can lead to undefined behaviour. We should use an iterator and its
remove method to do this safely.
CURATOR-132 - Modified the NamespaceFacade so that it does not proxy
getACL() and setACL() calls to the underlying client (which is not
namespace aware), and instead handles them itself.
CURATOR-79 - Modified the 'withProtection' handling, so that any failure
that is not a ConnectionLossException or other KeeperException is
treated the same as a ConnectionLossException. This means that if the
thread gets interrupted, or encounters some sort of other error, during
creation of a protected zNode, it will remove the affected zNode prior
to rethrowing the exception.

Exposed the debug UnhandledExceptionListener on the CuratorFrameworkImpl
to reproduce this issue via a unit test.
Merge branch 'CURATOR-131' of https://github.com/madrob/curator into CURATOR-131
CURATOR-139 Add slf4j-log4j test bindings

Add test bindings so that log output is preserved. Makes it easier to
debug jenkins and failed unit tests, which not appreciably increasing
the time to run or disk space used.

This closes #36
CURATOR-79 - Modified exception handling to occur in a single block.
Updated some minor unit test niceties.
CURATOR-141 Don't make calls to the client after PathChildrenCache has been closed.

The test case is a bit weird because it needed to intercept logging.
Also, I've added slf4j-log4j12 as a test dependency to control logging.
I think it should be added to the other poms as well, otherwise logging
seems to get lost.
CURATOR-141 Changed the way we detect a working log setup
Merge branch 'CURATOR-141' of https://github.com/karel1980/curator into CURATOR-141
CURATOR-141 - Reverted the logging additions to the pom.xml as they have already been covered by CURATOR-139
closes #16 Given that we will deprecate these classes I don't think this is needed anymore
CURATOR-142 Make forkCount configurable

Value can be set on the command line by invocing as:
mvn test -Dsurefire-forkcount=4 # Or whatever number you like

This closes #40
closes #34 - no longer needed
CURATOR-136 Consistent relpath handling in recipes

LeaderLatch would previously normalize a relative path in some places
but not others, causing inconsistent behavior. Make it check for an
absolute path on startup.

Additionally, scrub through the rest of the recipes and validate that
the path given is also valid before processing so that clients will see
failures early.

Modify PathUtils.validatePath to return the path given, for fluent-
style invocation, modelled on guava's Preconditions.

This closes #39
Merge branch 'CURATOR-136' of github.com:madrob/curator into CURATOR-136
Merge branch 'master' into CURATOR-132
Merge branch 'master' into CURATOR-79
Merge branch 'CURATOR-142' of github.com:madrob/curator into CURATOR-142