Uses existing file upload mechanism with slightly modified UI to upload the file.
Then there's new CSV parsing code to parse the CSV and import it as a new notebook.
Still need a few more unit tests before this feature can be considered complete.
* Altered Html_cleaner to allow link targets.
* Modified Wiki.load_editor(), Wiki.resolve_link(), and Link_pulldown() to
support external links with "_new" targets.
* Modified Editor.mouse_clicked() to explicitly open a new window for external links clicked in
read-write editors, because the browser won't open clicked link by itself unless they're in
read-only iframes.
* Removed a duplicate Editor.contents() function.
* Increased Link_pulldown title field size to 30 characters.
* Revisions can be opened either in the current page or in a new window/tab.
* Added ability for a read-write notebook to contain read-only notes. This supports showing read-only revisions.
* Fixed updatedb.py to properly load the anonymous user.
* Updated initdb.py and updatedb.py to deadl with new-style /notebooks/notebookid?note_id=noteid wiki links.
* Made Persistent copy the revisions_list on each revision update so different revisions don't share lists.
* Prevented Note from updating its revision twice upon construction. Now it's only updated once.
* Work-around for nasty urlparse() caching bug related to unicode strings that cherrypy barfs on.
* Added optional revision flag to various controller.Notebooks methods to allow opening of a notebook with a particular note revision displayed.