This PR corrects -j behaviour to not be order dependant, while avoiding having
to rebuild the command line.
It does this by first checking to see if its running within a jail. If it isn't
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 has.