Don't install unicodecsv on Python 3 and fallback to pythons built in csv library it it isn't installed.
Requirements changes
 - Removed Beautiful Soup 3
 - Added six
Fixed absolute import issues
Use six to import urllib and StringIO
Use six.with_metaclass to add metaclass to Page
Replaced occurances of 'unicode' with 'six.text_type'
Replaced occurances of 'basestring' with 'six.string_types'
Replaced occurances of 'dict.iteritems' with 'dict.items'
Replaced occurance of 'xrange' with 'range'
Cast email address to bytes before hashing into gravatar url
Replaced __unicode__ methods with __str__ methods
Another unicode replaced with text_type
Use python 3 print function
Fixed python 3 incompatible method for concatenating dictionaries
Cast test docs to bytes before uploading
Make sure that we are not iterating over tag.attrs.items()
Fixed wagtailembeds tests
Fixed wagtailforms test
Take a copy of parents indexed fields before modifying it to prevent indexed fields configuration being changed accidentally
indexed_get_indexed_fields should always return a copy of the configuration (even it its already a dict)