Rebased Dockerignore

Close #4165
Fixes #2224
We would error out above because of ValidateContextDirectory right now anyway, so I don't think this changes anything. Perhaps we should warn that ValidateContextDirectory will detect the unreadable .dockerignore?