Ensure dict orders are deterministic

Python 3 enables hash randomization by default, additionally tox 1.7
turns on the same randomization for earlier versions of python by
default. Need to ensure that order of iteration over the yaml data and
resulting XML has deterministic order for testing.

Adapts https://gist.github.com/enaeseth/844388 which ensures data read
by yaml will have its order retained in a predictable manner across
multiple python versions.

Additionally it seems more sensible to ensure that the order of
generated XML snippets corresponding to the input yaml files are
consistently in the same order as the entries in the source files.

Closes-Bug: #1333349
Change-Id: I6bf6d298a2609cc6ddbbc6b02b7f1a04413a5c89
Some tweaks to get closer to Python 3 compat

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.3 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.

Where contents should be retained, 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]'.

Alternatively, where further access to the data is not required,
'dict.popitem()' is used.

Change-Id: If4b35e2ceee8239379700e22eb79a3eaa04d6f0f
Adds support for Change Assembly Version plugin

See https://wiki.jenkins-ci.org/display/JENKINS/Change+Assembly+Version

Change-Id: Ib1ae6a18b4fc1ea0e75228b288d59dbec7e4d44c
Add support for the Jenkins Environment Script plugin.

Change-Id: Ia941b3426dd474f0f7d5ddaf9f40a44f7fdbc711
Merge "Ensure dict orders are deterministic"
Merge "Some tweaks to get closer to Python 3 compat"
Revert "Some tweaks to get closer to Python 3 compat"

This reverts commit 1d7647fa857fa718af814f3038d538d758c35201.

This change altered the xml output (by forcing it to fail) which a
backward compatible change should not do. Revert it in order to get this
compat change in without breaking that output and test.

Change-Id: I20f66fb1bd9c70a0debbdd5eebacf6ec5d0f5df9
Merge "Add support for the Jenkins Environment Script plugin."
Merge "Adds support for Change Assembly Version plugin"
Merge "Revert "Some tweaks to get closer to Python 3 compat""