support consul service health checks

Loads Consul service data into `/_consul/service` namespace. (https://github.com/kelseyhightower/confd/issues/100)

Format for keys is:
```
/_consul/service/<serviceName>[/<tagName>]/<nodeIndex>
```
Consul datacenters are not supported yet. `tagName` is optional. Both sets of keys are generated.
Consul data is loaded as a JSON marshalled String as the Value in the keystore.
Using data in template requires unmarshalling the data using the new `json` or `jsonArray` functions bounds to the template.

Additionally, added some convenience methods `parent` and `sibling` to the template for easier navigation around the KV store.

Note: this is my 1st attempt at Go, so feel free to criticize style/naming/etc. I tried to follow standard where it was apparent.

Supporting change at: https://github.com/kelseyhightower/memkv/pull/1
Potentially. I don't think there is a way to protect against that unless we move all the KV entries into it's own namespace internal to confd.

That's why I selected to prefix the service data with `_consul`.