2to3: Apply `imports` fixer.

The `imports` fixer deals with the standard packages that have been
renamed, removed, or methods that have moved.

`cPickle`      -- removed, use `pickle`
`commands `    -- removed, `getoutput`, `getstatusoutput` moved to `subprocess`
`urlparse`     -- removed, `urlparse` moved to `urllib.parse`
`cStringIO`    -- removed, use `StringIO` or `io.StringIO`
`copy_reg`     -- renamed `copyreg`
`_winreg`      -- renamed `winreg`
`ConfigParser` -- renamed `configparser`
`__builtin__`  -- renamed `builtins`

In the case of `cPickle`, it is imported as `pickle` when python < 3 and
performance may be a consideration, but otherwise plain old `pickle` is
used.

Dealing with `StringIO` is a bit tricky. There is an `io.StringIO`
function in the `io` module, available since Python 2.6, but it expects
unicode whereas `StringIO.StringIO` expects ascii. The Python 3
equivalent is then `io.BytesIO`. What I have done here is used BytesIO
for anything that is emulating a file for testing purposes. That is more
explicit than using a redefined StringIO as was done before we dropped
support for Python 2.4 and 2.5.

Closes #3180.