Set multiple outputs

Configure one or multiple outputs where to send JSON data
under [output] section of the configuration file. For now,
only elasticserch is supported.
Add Redis as output interface needed for logstash
Change redis library to go-redis
Configure password, db and db topology

password = password to authenticate with. By default no password is set
db = redis database number for storing events. By default is 0
db_topology = redis database number for storing topology. By default is 1
Add explanations in the config file
Add Redis connection timeout option
Stop agent in case there is no output connection
Connect to redis every time the topology is updated
Try reconnecting in case redis connection fails

Push the events in a queue that is continuously emptied by
a goroutine to be pushed to Redis. In case no connection can be established,
the events are dropped.

Add option reconnect_interval for the interval for reconnecting
to failed Redis connections. By default is 1 sec.
go fmt
Delete old publish test
Try reconnecting to Redis in init function
update deps
Store topology only in one output

Adding more options to config file:

1. enabled = true
that enables one output. Thus, you can have defined an output and in case you don't want to use it, just set enabled to false.
By default, only Redis output is enabled.

2. save_topology = true
that specify which output is used for storing the topology. By default is Redis.
Remove info message
Expire topology entries in Elasticsearch

In order for ttl to work, it needs to be enabled first.
Each agent publishes its IPs under packetbeat-topology/server-ip/<agent name>.

Add a small test for checking topology functionality in Elasticsearch.
cleanup print messages
Allow only one output to store topology
For redis generate "packetbeat" keys (without date)
Use elasticsearch as output by default