A clojure bucket abstraction over s3, ftp, file, memory