Patch with ETag, ignore .DS_Store

These `delete` special cases seem like a smell, it looks like we're just trying to skip the dot files. Maybe this could just be:

```ruby
def body_has_directory_contents(directory)
  Dir.entries(directory).
    reject { |entry| entry.start_with?('.') }.
    all? { |entry| response.body.include? entry }
end
```