Refactor command-line argument definition

- Argument definitions live in cmdline.py
- Parsing and initial processing lives in main.py