cli: Add a new CLI wrapper

This new CLI wrapper introduces a command mode,  like we are used from
Git for instance. The first argument specifies the command mode, which
is `prog` for the classic flashprog CLI.  As an alternative to a first
argument,  it can be called as `flashprog-cmd`, `flashcmd`, or `fcmd`,
via symbolic links for instance. Splitting CLI functions will allow us
to add more CLI features, that can be developed independently from the
classic CLI.

For instance, flashprog could then be called like this:

  $ flashprog -p ch341a_spi
  $ fprog -p ch341a_spi

For the future "config" CLI, more aliases are possible, e.g.:

  $ flashprog config -p ch341a_spi
  $ flashprog-config -p ch341a_spi
  $ flashcfg -p ch341a_spi
  $ fconfig -p ch341a_spi

Change-Id: I98cb110b47ebce52daf2e0972fc4565ef9d40242
Signed-off-by: Nico Huber <nico.h@gmx.de>
Reviewed-on: https://review.sourcearcade.org/c/flashprog/+/72988
diff --git a/meson.build b/meson.build
index 7321169..f308ec6 100644
--- a/meson.build
+++ b/meson.build
@@ -605,6 +605,7 @@
   executable(
     'flashprog',
     files(
+      'cli.c',
       'cli_classic.c',
       'cli_common.c',
       'cli_output.c',