Add Watchers

Watchers are to Traps what Workers are to Hosts and Services.

Watchers listen for external events and update the state of Traps
accordingly.

For example the SNMP watcher receives SNMP traps and publishes
results based on the trap recieved and configuration.

The configuration is stored centrally in the Bergamot system, checks
are registered with watchers when a watcher starts.

This initial implementation support listening for SNMP link state
change traps.