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.
Support within wagtailadmin for selecting a view mode in which to preview a page.

The 'preview' option is split out from the 'save' popup menu into its own button (it was deemed appropriate to split it off since it doesn't perform any database-level actions). If the page defines multiple page modes in get_page_modes, this button becomes a popup, allowing the editor to choose a mode. Finally, preview_on_create and preview_on_edit are updated to pass the chosen mode into the page's show_as_mode method.