Sort the Workspace and update lastModified

- Sorts the workspace list by `lastModified`, `mediaType`, and then `title`
- Works on large workspaces by not naively re-rendering the entire list on `sort`
- Stops updating the lastModified column in the workspace list if the view is closed
- New content is marked as dirty immediately
- Mock repo updates the lastModified time on save

This PR also contains commits in #102