Split actions into observing and destructive

The old Action type becomes either Act or Observe.  Observe produces a
String which is written to screen so guarantees nothing bad can happen
to checklist. The checklist is only altered by the Act type.

Cleaned up a whole bunch of imports and added type signatures to all top
level definitions. Tried compiling with -Wall but I can't be bothered
adding a type declaration to [1..] just to make the compiler briefly
happy. It can wallow in its own misery.
Allow viewing of several branches

Try to show or print statistics for all the checklists in .git/checklist
in case that is useful. Not very sophisticated output yet but the parser
should at least prevent you from editing all the checklists at once!
Prettier printing of 'show --all' option

Use branch name and separate each list by a blank line.
increment to v0.3