Fix dragging pages to the top level in admin and add a safeguard to prevent parent cycles

Start with example content and try to drag ``Legals`` out of ``Contact``, this results in a 500 due to ``Page.objects.get(id=None)`` in ``admin_page_ordering``.

If you now continue (without refreshing the page) by dragging ``Contacts`` under ``Legals``, bad things start to happen. Contacts parent points to legals, while legals parent points to contacts and the code falls into an infinite loop in ``Page.save``.