Don't set job var override_checkout if null

It's been suggested this variable would be more convenient to use
if it were simply omitted rather than set to null if the job does
not set an override_checkout value.

Also, remove a stray TODO which is done.

Change-Id: Iededec3007857f4aebabcd027c40e9e0fc101ced
diff --git a/doc/source/user/jobs.rst b/doc/source/user/jobs.rst
index 0639b8b..989338a 100644
--- a/doc/source/user/jobs.rst
+++ b/doc/source/user/jobs.rst
@@ -175,8 +175,8 @@
    .. var:: override_checkout
 
       If the job was configured to override the branch or tag checked
-      out, this will contain the specified value.  Otherwise, it will
-      be null.
+      out, this will contain the specified value.  Otherwise, this
+      variable will be undefined.
 
    .. var:: pipeline
 
diff --git a/zuul/executor/client.py b/zuul/executor/client.py
index 3263f5f..a8b94f0 100644
--- a/zuul/executor/client.py
+++ b/zuul/executor/client.py
@@ -143,8 +143,6 @@
             "with dependent changes %s" % (
                 job, uuid, nodeset, item.change, dependent_changes))
 
-        # TODOv3(jeblair): This ansible vars data structure will
-        # replace the environment variables below.
         project = dict(
             name=item.change.project.name,
             short_name=item.change.project.name.split('/')[-1],
@@ -163,8 +161,9 @@
                            tenant=tenant.name,
                            timeout=job.timeout,
                            jobtags=sorted(job.tags),
-                           override_checkout=job.override_checkout,
                            _inheritance_path=list(job.inheritance_path))
+        if job.override_checkout:
+            zuul_params['override_checkout'] = job.override_checkout
         if hasattr(item.change, 'branch'):
             zuul_params['branch'] = item.change.branch
         if hasattr(item.change, 'tag'):