Python 3: Handle dict-like objects

Calls to items() and values() return an iterator in Python 3. This
commit converts the result to a list if necessary. In some instances,
using the six helpers was not necessary and has been removed.

See also:
https://docs.djangoproject.com/en/dev/topics/python3/#dict-and-dict-like-classes
Python 3: Review usage of range()

range was used correctly in the codebase. But I've removed a few
unnecessary calls to list(), and simplified a few trivial calls to
range.
Use Python 3 to create native migrations

Native migrations created with Python 2 differ from ones created with
Python 3. More importantly, they fail when used in Python 2, but not
vice versa. This is caused by field names being marked as byte strings
when using Python 2.

This rewrites the native migrations, which probably isn't a bad thing
either, because they were created with a pre-RC2 version of Django, and
Django 1.7 has since seen a few more migration-related fixes.
PEP8 fixes

This catches a call to unicode() and duplicate imports.
Trial Travis with Aymerics django-oscar-paypal