2to3: Apply `map` fixer.

In Python 3 `map` is an iterator while in Python 2 it returns a list.
The simple fix applied by the fixer is to inclose all instances of map
with `list(...)`. This is not needed in all cases, and even where
appropriate list comprehensions may be preferred for their clarity.
Consequently, this patch attempts to use list comprehensions where it
makes sense.

When the mapped function has two arguments there is another problem that
can arise. In Python 3 map stops execution when the shortest argument
list is exhausted, while in Python 2 it stops when the longest argument
list is exhausted. Consequently the two argument case might need special
care. However, we have been running Python3 converted versions of numpy
since 1.5 without problems, so it is probably not something that affects
us.

Closes #3068
Merge pull request #3216 from charris/2to3-apply-map-fixer

2to3: Apply `map` fixer.
2to3: Skip `future` fixer.

The `future` fixer removes the `from __future__ import ...` statements.
That is fine for Python 3, but we need to keep that statement if we are
shooting for a common code base for both Python 2 and Python 3.
Merge pull request #3223 from charris/2to3-skip-future-fixer

2to3: Skip `future` fixer.