[utilities] do not pass unicode to shlex on PY2 runtimes

Running sos-3.2beta on a python2.6 runtime leads to:

  File "/usr/sbin/sosreport", line 25, in <module>
    main(sys.argv[1:])
  File "/usr/lib/python2.6/site-packages/sos/sosreport.py", line 1408, in main
    sos.execute()
TypeError: execve() argument 1 must be encoded string without NULL bytes, not str

> /usr/lib64/python2.6/subprocess.py(1234)_execute_child()
-> raise child_exception

This occurs because some command output is interpreted as unicode
by the Python runtime. When this output is processed in a plugin
and passed back down to sos_get_command_output() it leads to the
above exception.

Work around the problem by encoding strings passed to shlex.split
on older Python versions.

Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
[archive] introduce py2.6 TarFile compat wrapper

Python 2.6 lacks the filter parameter to TarFile.add() that the
TarFileArchive uses to preserve permissions on archive content.

Work around this by creating a wrapper class that implements the
missing functionality (duplicated from the py2.7.5 tarfile.py)
and use it whenever running on a python version less than 2.7.

Signed-off-by: Bryn M. Reeves <bmr@redhat.com>