added ZooKeeperConfigurationSource including a generic WatchedConfigurationSource interface for other implementations besides ZooKeeper.
Merge remote-tracking branch 'upstream/master'

Conflicts:
	settings.gradle
added support for WatchedConfigurationSource
refactored AbstractPollingScheduler to use DynamicPropertyUpdater shared
by DynamicWatchedConfiguration
removed unnecessary calls to syncConfig()

split one large test into several smaller tests
fixed comment
renamed some classes, moved pathChildrenCache initialization/start code
to a separate ZooKeeperConfigurationSource.start() method.  added
ZooKeeperConfigurationSource.close() method to support the Closeable
interface.

reduced the visibility of WatchedUpdateResult's constructors to
package-private to encourage the use of the Factory method.
adjusted test to favor the ZK property override over the System property
per archaius 0.5.3+.  see https://github.com/Netflix/archaius/issues/62
for more info.
Merge pull request #61 from cfregly/master

Issue #45: Added support for ZooKeeper-based dynamic configuration source