This PR corrects `-j` behaviour to not be order dependant, while avoiding having
to rebuild the command line.
It does thisThis is done by first checking to see if itsparsing the `getopts` and if we are not running within a jail. If it isn't and have received a `-j` argument,
it then processes `getopts` for the `-j` argument. If it's found, `service(8)` is
executed within the given jail via `jexec(8)`. All command line arguments passed
to `service(8)` on the host are passed to `service(8)` in the jail unmodified.
If `service(8)` finds that is is running in a jail, the parsing of `getopts` as
detailed above is skipped. and the usual parsing of the `getopts` happens. The
main difference in this case is that we must now take a `-j` argument here too,
although we ignore it.
If `service(8)` is running outside of a jail, and a `-j` argument wasn't passed,
then `getopts` will be processed twice. First, it will be processed for the `-j`
argument as detailed above. When this isn't found, `OPTIND` is reset to `1` and
regular parsing of the `getopts` happens as it always haswe proceed to rebuild the command line and call `jexec(8)`.