added code to properly update internal state if IP changes on cluster deploys
added methods to get public IP/FQDN when running in AWS, Euca, or GCE
added more logging when examining node list
always returning Time.now when updating zk list
defining data earlier, so that it stays in scope
added guard in case data received is nil
do not try to reestablish a connection on NodeExistsError
allow NodeExistsErrors to be raised and not caught
Merge pull request #823 from nlake44/zk-fixes

do not try to reestablish a connection on NodeExistsError
Merge pull request #810 from shatterednirvana/dont-update-nodes-on-startup

Always returning current time when updating ZK node list
Merge pull request #794 from shatterednirvana/revive-appcontroller-if-ip-changes

AppController no longer crashes if local IP has changed since last execution
Merge pull request #811 from shatterednirvana/appcontroller-lives-if-apichecker-down

Validating that APIChecker data is a Hash before using it