* Implement moving cells with keyboard shortcuts
* Add tests for cell movement operation
* Refactor
* Does not mark cells as stale if Elixir cells did not change order
* Initial file import/export
* Add renderer tests
* Refactor renderer
* Depend only on EarmarkParser
* Add test for export
* Add import tests
* Improve import
* Document the ExMd file format
* Rename ExMd to ExMarkdown
* Rename ExMarkdown to LiveMarkdown
* Build iodata when exporting a notebook
* Persist metadata as a single JSON object
* Move Markdown to LiveMarkdown.MarkdownHelpers
* Make LiveMarkdown private
* Always move primary heading to the top during import
* Hint the user not to use heading 1 and 2
* Return a list of messages from the import function
* Update headings warning
* Add import and export test for non-elixir snippets
* Merge markdown renderer into MarkdownHelpers
* Add import messages on AST rewrites
* Adjust result length
* Add more keyboard navigation actions
* Improve inserted/deleted cells focus and add some tests
* Some refactoring
* Run formatter
* Set up markdown rendering, update theme.
* Improve focus and handle expanding for markdown cells
* Add keybindings for expanding/navigating cells
* Improve editor autofocus when navigating with shortcuts
* Add tests
* Render markdown on the client
* Don't render cell initial data and make a request instead
* Sync session data within LV client
* Add basic session UI
* Add operations for setting notebook and section name
* Update notebook and section name from the UI
* Some cleanup
* Return current data upon client registartion to avoid race conditions
* Small fixes
* Define session data structure and some operations
* Make code evaluation request async, so that we don't need an intermediary process
* Simplify id typespecs
* Make operation application composable
* Keep a separate evaluation queue per section and actually support concurrent evaluation
* Small fixes
* Validate queued cell type and set evaluation timestamp
* Apply review suggestions
* Add tests
* Store evaluating_cell_id instead of section status
* Add dynamic supervisor for managing evaluator processes
* Some fixes
* Refactor operation application
* Upon cell deletion mark dependent cells as stale