proper cluster implementation with  very robust failover and leader selection code

kinda went overboard with my changes, needed a bigger refactoring to simplify the failover logic. New classes: 
- cluster
- node
- http for http handling
- works with latest Etcd daemons 
- is very resilient, is getting back online as soon the new cluster gets back
- has visibility into the cluster status from the console (client.cluster.nodes)
- accepts multiple seed URIs to configure from any of those, that are online (!!!) 
- will re-try them all in case of failure until any of them gets back online
- will try to reconnect on each request, while being off-line

and some convenience stuff, like 

    $ sh/c # for development console

AND 

NodeKiller (!!!) in dev mode to kill the leader of the cluster conveniently from your ruby shell
    
    > NodeKiller.kill_node(client.cluster.leader.name)

see, if you like it. :)