Add support for array and hash resolution types

This is a fairly major rewrite of the lookup method, including the following
major changes:

* Keys containing double colons (e.g. puppet::master::package::ensure) are
  translated to paths in Consul (e.g. puppet/master/package/ensure) to
  facilitate more structured data.  This is of particular use when using a
  data in a particular category by traversing parts of Consul's KV tree.
* Support has been added for the array resolution type.
* Support has been added for the hash resolution type.  All parts of the
  tree below the specified key will be returned.
* When using the hash resolution type, JSON encoded values will be converted
  into the corresponding data structure(s) and included in the returned
  hash.
* Debug messages have been reworded for consistency with the stock Hiera
  backends (JSON and YAML).

It also introduces minor changes to the configuration options:

* Added "protocol" option (defaults to 1)
* Protocol version ("/v1/") no longer included in configured paths
* Added defaults for "host" (127.0.0.1) and "port" (8500)
* Added default for "paths" (kv/common)
* Removed "failure" and "ignore_404" options