core: send unicode strings to subprocess.Popen on Python3

Python3 on Windows expects unicode strings because the Win32 APIs are
unicode-based.  UNIX will automaticlaly encode unicode strings into
bytes using the default encoding (utf-8).

Python3 on UNIX works fine with bytes because the APIs accept bytes, but
Windows does not.  Use unicode on Python3 and bytes on Python2 so that
we can avoid a platform-specific check in favor of a python version
check.

C.f. http://code.activestate.com/lists/python-dev/130325/

Signed-off-by: David Aguilar <davvid@gmail.com>