Fix .dockerignore when ignoring unreadable dirs

The initial `ValidateContextDirectory` implementation fails loudly when a file lacks read permissions in the current context. However that situation is valid if the file is included in the `.dockerignore` patterns. I was planning to use `.dockerignore` to exclude a volume created when running mysql + the local project using fig.

**note**: this is my first piece of go code, ever. Let me know if things need to be fixed :). Tests are passing locally, however I couldn't find any test related to the `.dockerignore` feature itself and I'm not sure how to reproduce the situation in tests. I was able to run `docker build` successfully with my local build and `.dockerignore`.

Refs #6579
You should remove finalError. You're setting it inside the goroutine, which means that if it is to be set, it will probably be set too late for the `if` condition to be true on line 375. That is why there are `utils.Debugf` calls everywhere at the end of the goroutine.