handle PUT/POST/DELETE to /data/fs/[path] (Fixes #140)

Replacing the earlier PR (#152)
Thanks, I think I've got this correct now but please do have another look. If only the type system could help...

Would it make any sense to wrap the MongoDB driver in a trait that puts every call into `Task`? That way, if you only imported the wrapper, it would be harder to make these mistakes. I don't know if that approach scales very well, but just using the Java API as is makes it pretty awkward trying to be careful about encapsulating effects.