Implement repo permissions for batch spec workspaces
Created by: eseliger
Closes https://github.com/sourcegraph/sourcegraph/issues/33411 by changing the workspace type to an interface and implementing 2 versions of it, one hidden and one visible. This is the exact same pattern we already use for ChangesetSpecs.
Test plan
Adjusted test suite and made sure everything works still when going through the workflows manually.