Move category tests to integration folder

They use the DB so they are not really unit tests.
Add test scaffolding around Category class
Rework subtree updating after move

New impl is considerably simpler and lets the save method update each
node's slug and full name.
Convert non-ASCII char to ASCII for category slugs

This uses the unidecode package to convert non-ASCII words to ASCII
equivalents.  We use a new slugify function to wrap this logic as we
will want to use it elsewhere.

See this StackOverflow thread for context:
http://stackoverflow.com/questions/702337/how-to-make-django-slugify-work-properly-with-unicode-strings/

Unidecode becomes a new dependency for Oscar.
https://pypi.python.org/pypi/Unidecode

Hat-tip to @avsazonov for suggesting this fix.
Switch to new unicode-aware slugify everywhere
Fix warning from bytestrings being slugified
Move catalogue tests to integration folder...

...as they are all integration tests (they save stuff).
Package core unit tests
Add support for a custom slug mapping setting
Add slug blacklist setting

So stopwords can be moved from slugs
Merge pull request #322

Conflicts:
	setup.py