Add defaults for slug handling settings

Seems like a good practice to define them explicitly.

Cherry-picked from d755aae.
urlquote paths when checking if correct URL was used

Otherwise the check fails when using unicode slugs.

Cherry-picked from 801464d.

Conflicts:
	oscar/apps/catalogue/views.py
Use unicode strings in test suite

This is a proposed change to show different styles of how we could
introduce unicode strings into the test suite. We should probably settle
on one of them.

Cherry-picked from 1e14af9

Conflicts:
	tests/unit/address/factories.py
	tests/unit/address/model_tests.py
Replace deprecated permalink decorator

Django now recommends using reverse():
https://docs.djangoproject.com/en/dev/ref/models/instances/#the-permalink-decorator

Cherry-picked from 327fdc1
OSCAR_SLUG_FUNCTION: Support string notation to set slugifier

Importing things in settings is discouraged. But until now,
OSCAR_SLUG_FUNCTION could only be set as a callable, which requires
importing. It's now been updated to use the import_string function.