[#566] Save changes for Full editor

* If a user makes changes in the inline editor, then clicks 'Edit Content' it will save the content.
* Prevents changes from being lost.
[#566] Move Content

* While editing a block, if you move it it will save the changes.
[#566] Remove Content

* Removing content from a page will now prompt the user to confirm before removing it.
[#566] Edit Page Titles

* Allow editors to edit the title of the inline.
[#566] Add use_page_title

* Add new method 'use_page_title' for setting a page_title override.
* Add deprecation for calling page_title for setting page names.
* Refactor all core files to use_page_title
[#566] Add page_header to Template API

* New method 'page_header' can be used in place of page_title within the body of a CMS template.
* Deprecated usage of 'page_title' to set the page title.

When used, editor can change the page title in context, rather than having to edit the properties.
-#566] Enable inline for other content types

* Strip HTML formatting for attributes not named :content
* Don't call html_safe on numbers.
[#566] Inline Ckeditor

* [BUG FIX] InlineEditor doesn't load the latest 'draft' of a block. i.e. Product with two fields:
    - Change name (A -> A1)
    - Change price (B -> B1)
    - Name field will go back to A.
[#566] Preview Page

Add a 'Preview' page button that will open the window in a new tab with no frame.
[#566] Add button to edit blocks

* Some content types (i.e. portlets) don't really have a representation that would allow them to be inline edited.
* Added a floating 'edit' link to allow users to directly edit content.
[#566] [BUG FIX] Page title shouldn't be editable

* In preview mode, the page title is editable, when it should not be.
[#566] [BUG FIX] Html bodies shouldn't be sanitized

* When inline editing html blocks, the html formatting shouldn't be removed.
[#566] Edit/Move block

* [BUG] Editing a block, then moving a block will throw an error. (Connector ids change between page versions)[Suggest: After editing block, replace container with new content)
* Step 1: Refactor the page status update to use JSON (remove ERB)
[#566] Updated page title should be displayed

* After changing the page title in the inline editor, the page title also changes.
[#566] Refactor current_content

* Push the complicated logic for getting the connectors associated with a page into the page itself.
[#566] Editing then moving a block breaks

Fixed: You can now edit a block inline, then move it.

This was happening because the connector ids would change between page version updates, so the move up/down/remove paths would be wrong.

Solved by sending new paths to client during updates.
[#556] [BUG FIX] Same block can appear twice.

* Issue: CKeditor would not work if the same block appeared twice, meaning you couldn't remove, edit or move either block.
* Fix: Generate unique ids for each block, so CKeditor could bind to them. Their ids are meaningless anyway, as data attributes are used.
[#566] [BUG FIX] Can't move or remove portlets

Since portlets don't support inline editing, we need to display buttons to remove/move them.

We made this conditional on content not supporting inline editing, so that it doesn't clutter up pages.