EDITING: Add drag and support to ToC editor

This adds drag and drop support to the table of contents when in edit mode.  Most functionality is included in this PR, including re-arranging pages and subcollections, nesting subcollections, and adding pages to subcollections.

A few bugs still remain, including:
1. A strange caching tendency where the browser will not remember if a subcollection is expanded or not when toggling off edit mode.
2. When removing a subcollection that contains the active page, the active page is not changed
3. Enhancement: Detect if the cursor is in the top half or bottom half of a target node and place the dragged node accordingly.