PR with just the initial structural changes for the cli to be a package. Subsequent PR will break out `main.py` into modules. Doing it in two stages ensure that the commit history will be continuous for `cli.py` > `cli/main.py`