Migrate command line argument parsing to structopt
Closes #878 (closed)
An implementation of proposed changes from the issue. Do note that short option for showing version in structopt is '-V', not '-v' as it was previously. Other than that, all flags were kept the same.
Edit: version flag was changed from '-V' to '-v', so all flags are now the same.
The behavior of passing either a command via '-c' or a path to script is now enforced. Error messages for unknown options are shown instead of being interpreted as a path to script. Help message is now autogenerated from doc comments.
Binary sizes compiled on my machine with rustc 1.37.0-nightly (7840a0b75 2019-05-31), cargo build --release: 4422520 -> 4862464 bytes.