Fix an shlex encoding issue for Python < 2.7.3

With Python < 2.7.3, shlex.split does not behave correctly with unicode
input. This change encodes the args passed to shlex.split in utf8, and
then decodes each element of the split.

It is well documented that shlex doesn't support unicode input prior to
Python 2.7.3. See http://docs.python.org/2.7/library/shlex.html.