Add check for slug when editing page (fixes #119)
Improve JS behavior when editing slug (fixes #132)
Fix bug introduced by a1c9224

The a1c9224 commit allowed page editing only when their slug had been
changed!
Add support for setting global image compression..

quality. Uses an IMAGE_COMPRESSION_QUALITY in the settings.py, which, if
set, will set a quality attribute in the image processing backends. Each
image processing backend then can use the quality attribute in its "save"
method.

This has been implemented in both Pillow and Wand backends. It has been
tested with image that support this setting (JPG) and images that do not
support it (GIF, PNG) and the behavior is consistent.

This is an implementation for #163.
Change slug cleaning to only happen on blur, not every keypress - fixes #132

a854c03f443083a1471dd066dece92527dbb7c7c improves the behaviour a lot, but it's
still fairly nasty for a text field to be rewriting text as you type it. It's
also unnecessary - you have to be pretty determined to submit the form without
triggering the blur event on the field, and if you do, all that happens is that
you fail server-side validation.
a spot of PEP8 cleanup on pillow.py / wand.py
Set a default IMAGE_COMPRESSION_QUALITY of 85 as per @tomdyson's suggestion, and simplify image backend now that it doesn't have to check for the presence of a quality setting
Added PageQuerySet
Added 'page' attribute to PageQuerySet
Added inclusive flag to ascendent_of, descendant_of and sibling_of
PageQuerySet: renamed 'ascendant' to 'ancestor'
changelog updates
Make PageQuerySet inherit from treebeards MP_NodeQuerySet
Add PageManager which returns PageQuerySet objects
Added unit tests for PageQuerySet
Added changelog entry
Tweaks to PageQuerySet.not_descendant_of tests
Add a dummy_request method to Page so that we can generate page previews without passing in the active request object (which may have undesirable side effects, e.g. may be a POST)
Don't use URLify if a user has manually set a slug

Not a big deal, and can easily be handled by using the available js_hook,
but this has annoyed the hell out of me and others may find it useful.
Add get_page_modes and show_as_mode methods to Page.

This abstracts out from the preview methods the details of how the page is generated.