Rename doc environment to docs

As per the governance resolution https://review.openstack.org/119875,
projects should have a docs environment in their tox.ini testing
interface. Rename the doc environment to docs.

Change-Id: I1ad04bd2c3a0404a2ee6d809154c72bc896d0c36
Make JJB python 3 compatible

Convert to use idioms that work for both python 3 and python 2.6+ and
ensure that a suitable version of dependencies is included for python 3
compatibility.

Update python-jenkins to 0.3.4 as the earliest version that supports
python 3 without any known regressions. Add an extra parser check for
missing 'command' due to changes in how argparse works under python 3.

To access the first element of a dict in both python 2 and 3,
'next(iter(dict.items()))' is used as the standard idiom to replace
'dict.items()[0]' as 'items()' returns an iterator in python 3 which
cannot be indexed. Using 'next(iter(..))' allows for both lists and
iterators to be passed in without unnecessary conversion of iterators to
lists which would be true of 'list(dict.items())[0]'.

Original change which was reverted due to breaking use of job-groups is
If4b35e2ceee8239379700e22eb79a3eaa04d6f0f. This replaces the previous
conversion of 'dict.items()[0]' to 'dict.popitem()', which would result
in removing a job-group when first called, thus defeating the benefit of
being able to reference the group mulitple times. This usage has been
replaced with 'next(iter(dict.items()))' as a non-modifying alternative
that still avoids creating unnecessary copies of data while working for
all supported versions of python.

Change-Id: I37e3b67c043dadddb54e16ee584bde3f79e6a770
Fix again whitespaces with python 2.7.0-2.7.3

We had a patch to fix XML whitespaces with python early than 2.7.3 at (
https://review.openstack.org/#/c/71266/ ). The function was later
changed to < 2.7.0 with:
https://review.openstack.org/#/c/93198/1/jenkins_jobs/builder.py

That apparently restore the issue with python < 2.7.3. Bump the version
check to its previous value.

Change-Id: Ib6c2bdb9f8b82c1770c44a74dfd278bf8b3ea466
Add support for build parameter of type "Run"

Defines a run parameter for parametrized build, where users can pick a
single run of another project. The absolute url of this run will be
exposed as an environment variable.

Change-Id: I86bc3109b00259f9fe3dcf7ab9d72cb1f22fadc2
Merge "Make JJB python 3 compatible"
Merge "Add support for build parameter of type "Run""
Merge "Rename doc environment to docs"
Merge "Fix again whitespaces with python 2.7.0-2.7.3"
Accept colon-delimited list of paths in args.

This adds the behavior of splitting the path positional argument on colons then
processing each resulting string the same way that the path was being processed
previous to this commit.

* Adds a unit test to validate correct `path` parsing.
* Adds a unit test to validate correct `path` parsing in the recursive case.

Change-Id: I0f465e02077569352cd276a8366ead5bab0eb117