add session commands to with-editor, use arbitrary major-mode while committing

See the commit messages.