move to channel-based logging
move capability handling code to a single file
break up types.go

- remove old interfaces, move to relevant files
- remove Phase in favor of a boolean flag
convert some args to subcommands