This commit adds support for tracking and resolving clashes of output
locations. Previously open-ended clash dependency chains could passively
resolve across multiple Cinera invocations (undesirable, but possible);
whereas closed-loop dependency chains could not resolve without the user
manually resolving them by moving one clash to a temporary location (not
acceptable). This new support handles such clashes in one fell swoop.
Other smaller changes in this commit:
• Change message_control to use memory_book
• Fix deletion of old .index files when reorganising projects
• Fix deletion of moved entries when subdividing projects