Create new projects
Create program that calls the command dispatcher
Implement command dispatching
Implement type name command matcher
Implement alias command matcher
Create composite command matcher
Create a console IO wrapper
Create interface for abstract command
Implement option parsing framework
Create usage helpers for OptionSet
Create generic command
Implement configuration file support
Implement LoginService based on old LoginCommand
Move Watcher and Debouncer to new project
Implement workspace sync command
Update deployment script to use new project
Delete old projects
Organize command framework namespace
Organize Model namespace
Start throwing exception when sending changes fails

Better to fail soon than to think everything is OK. Later we can work on
some better error handling.