Cleaner syntax for code describing program flags

The only functional change here is that argument massaging is now done in a 
logical central location (e.g. right after arguments are read in). All other 
changes are intended to make the code easier to read by grouping flag 
definitions into sections and breaking up long lines

All argument help text is 95% identical - I've clarified that some arguments are 
being passed through to `wrk` when benchmarking