Refactor option parsing into classes

Allows for subcommand-based option parsing
IO.popen needs to block and carry through stdout
0.0.11