Up to etcd 3.0 with discovery support

Refactor some common bits into helper library. 
Specs on library code
Add in rubocop and travis
Cleanup across the board