Use clean() instead of save() for setting ordering

This fixes a bug with django-mptt where it 
expects the ordering to be set when save() is
called.

Reference:
https://docs.djangoproject.com/en/dev/ref/models/instances/#django.db.models.Model.clean