Basic local state

AutoConsul::Local gives abstraction of state in the local file
system.  Get/set the mode (agent versus server), determine the
relevant paths relative to a particular working directory, etc.
S3Provider for S3-based "heartbeat" registry

AutoConsul::Cluster::Registry::S3Provider class:
- given an url "s3://bucket/path/like/key/prefix"
- will manage a expiry-based heartbeat registry at the requested
  bucket, with the path-like key prefix
- you can send heartbeat objects there that are timestamped and
  marked with your identifier
- and you can ask it for the identiers that are still active, within
  some expiry time (in seconds)

This will form the basis for having consul agents and servers
send heartbeats, such that a bootstrapping node can automatically
discover active participants by which the cluster may be joined.
S3Provider's heartbeat purges old keys

Given an optional expiry in seconds, the heartbeat! method will
purge expired objects from the bucket.
Runtime state from CLI

AutoConsul::RunState::CLIProvider class:
- uses command line "consul info" call to check for running state
- running? predicate indicates whether running
- agent? predicate indicates whether agent
- server? predicate indicates whether in server mode; a server must
  be in agent mode, incidentally.