common-cli: CLI framework

Yeah I think I wanted it to handled by callers.