Refactor argparser for better data encapsulation and add testing

* Exclusion checking done internally at parse time (including command exclusivity)
* Relies on standard library implementation of argument checking (tried-and-true)
* Simplifies mane implementation as a result
* No usage changes apart from a more descriptive `--help`