Have .dockerignore support Dockerfile/.dockerignore

If .dockerignore mentions either then the client will send them to the
daemon but the daemon will erase them after the Dockerfile has been parsed
to simulate them never being sent in the first place.

Closes #8330

Signed-off-by: Doug Davis <dug@us.ibm.com>
There is some redundant code indeed. You could create a refactoring function that takes the path to the .dockerignore file, and returns `excludes`. That way, the client can manage the `includes` on its own, and the daemon just removes what the files it needs to remove from the context.

This will also allow to use a `bufio.NewScanner` instead of `ioutil.ReadFile` the whole file, not that much of a difference i bet, but good practice :)