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.