This moves over the cli `arg` struct tags which are used to generate and parse things on the command line. Furthermore, we then embed this data directly in our more general parser struct so that we avoid duplication. Finally, since the data shares a common struct type, we don't need to do the manual field-by-field copying to pull things in!