Consul-Conf: config templates from consul data

Object oriented mechanism to rewrite config files from template filled in by consul data.  The primary functionality here is to go through the consul services and nodes, using their health checks to come up with an idea of what nodes offer what servies  and their health status.  This data can then be plugged into  template to write out a configuration file. The code includes a diffing mechanism to verify that the file has changed, with comment exclusion, and hooks eg to restart services.
We should probably check the X-Consul-Knownleader header in this method (or somewhere anyway) to make sure it is true, and if not bail on writing out any configs.  This would signal the cluster is sick and we don't want to trust it until it is healthy again.