Added validity checks for repo name and tag in build job

This is intended as a fix to the issue outlined in #6969 . It enforces the same checks that already exist in the docker CLI, so that they can't be bypassed by using alternative clients.
I intentionally didn't remove the checks on the client side so that the client doesn't need to upload a potentially huge tarball before being told its -t option was invalid.