py33: don't encode security_group

In Python 3, str and bytes can not be mixed. str.encode() will
return bytes in py33, which will induce the mismatch.

Bypass the s.name.encode() in py33.

Change-Id: Iee8d69aab9df4af126e94e4363f79e32fdd70fcd
Close-bug: #1231868
py33: sort the files parameters of "--files"

In Python 3.3, hash randomization is enabled by default. It causes the
iteration order of dicts and sets to be unpredictable and differ across
Python runs.

Sort the files parameters when multiple files are designated.

Close-Bug #1235096

Change-Id: I0db645b3fb92408bd8c6780bfabe7ce8265a65a8
py33: use six.StringIO() to mock stdout/stderr

six.StringIO() is the right way to keep Python2/3 compatibiliby
while mocking stdout/stderr.

Close-Bug #1235086

Change-Id: I33d9223b2202896331d24339056d57d4ca9acdc5
Merge "py33: don't encode security_group"
Merge "py33: use six.StringIO() to mock stdout/stderr"