No more "--" for 'carton exec', rewrite command line option parser handlings

Fixed option parsers not to use "--" to separate subcommand options and arguments.

With this fix:
* `carton -v exec perl` shows carton's version, but `carton exec perl -v` returns perl's version
* `carton exec perl -e '...'` works as we expect
* `carton exec -- perl -e "..."` works well too
* `carton exec -Ilib -Iextlib/lib/perl5 perl -IXXX`, carton-exec accepts only 'lib' and 'extlib/lib/perl5'.