Added a copy map of the options variable and changed parsing to go through the whole arg list before throwing exceptions

This allows people to simply append -h at the end without having to erase
the entire command line just to see the help screen