Defining subparsers, allowing us to have task specific args
Normalizing the setup definition only when it is set.
Adding the "new_setup" task
Making args#parse_args testable

and, obviously, adding a test.
Extracting some methods from args#parse_args

It was quite hard to understand what was going on on that mess, still
messy, but better