Adding support for user events

This PR add support for "events". Events are opaque to Consul, but can be used for orchestration however it is seen fit. They can be used to handle deploys, restart services, etc. Events are fired using the "consul event" CLI, and they are handled using watches, either in an agent or via "consul watch".
oh look, you answered my question explicitly. yay!