4027: API Jobs that specify SDK version must also use Docker.

Because compute nodes will be upgraded regularly, we don't want to
guarantee that we'll have the necessary tools to run older SDK
versions.  The primary motivation for this feature is to install SDKs
into Docker images, so we require that to be specified.

This commit removes a few `job.valid?` assertions from the job unit
tests.  These are redundant when they come after `Job.create!` because
that will raise an exception if the job isn't valid.
Merge branch '4027-api-sdk-requires-docker-wip'

Refs #4027.  Closes #4626, #4629.