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.
BUG: Fix stray '.' in import statement.

There was a stray period at the end of an import statement in
`doc/cdoc/numpyfilter.py`. Looks like a cut and paste error that
was fixed elsewhere but escaped there because the module isn't
tested. A search shows that this was the only spot in which the
error was still present.
Merge pull request #3191 from charris/2to3-apply-imports-fixer

2to3: Apply `imports` fixer.