major refactor

- replaced reset with startup/shutdown where appropriate (provides
better handling of canvas creation/destruction). reset is only used
where there is no distinction between startup/shutdown
- Edit changed to EditorPanel
- TextPropertyEditor now creates it own text box for editing
- ProperyPanel split out, it now handles object property recursion (the
relevant property editor can opt for recursion or not)
- PropertyEditors are no longer dependent upon the panel,instead they
provide callbacks for when startEdit is complete
- created PageList which holds a list of Pages
- created EditorList which holds a list of Editors