Config clean up and usage messaging.

I consolidated the flag sets and added tests for `-h`, `-help`, `-version`, and for undefined flags. I also cleaned up the usage message so it's a lot cleaner and more readable.

/cc: @philips @xiangli-cmu