This commit makes a couple of changes:
- `ent show ISSUE` now displays the Issue's Comments in chronological
order
- the Comment struct now includes a timestamp, which is the Author Time
of the oldest commit that touches the comment's directory
- the Issue struct now stores its Comments in a sorted Vec, not in
a HashMap
- The Comment's uuid moved into the Comment struct itself, instead of
being the key in the Issue's HashMap of Comments
This mostly provides an abstraction for "ephemeral worktrees", which
is a branch checked out in a worktree, to be read and maybe modified,
and the worktree is deleted/pruned when we're done with it.
There are also some helper functions for doing git things, the most
important one creates an orphaned branch.
The intent is to keep all the issues in a git branch. When we want to
do anything with issues (list them, add new issues, modify an issue,
etc) we check the issues branch out into an ephemeral worktree, modify
the branch, and delete the worktree.