Add a etcd backend for caching facts

This backend is modeled on the redis one, but using the builtin
expiration system of etcd. After looking at various options for
the etcd module, I settled on etcd because it was the easiest to
install with pip, but it should be trivial to change the client.
return self._cache.node.get(self._make_key(key), False) and True
that should be better performance wise if you really care about it ;)