We have to build two argument specs.

To populate the %parsed hash: Capture the arguments that the user has passed in, as parsed by the Getopt::Long::GetOptions function. Aliases are converted down to their short options. If a user passes "--proximate", Getopt::Long converts that to "-p" and we store it as "-p".

To populate the @raw array: Capture the arguments raw, without having been converted to their short options. If a user passes "--proximate", we store it in @raw as "--proximate".