Move openssl(1) from /usr/sbin/openssl to /usr/bin/openssl, since it is not
a system/superuser binary. At the same time, move the source code from its
current lib/libssl/src/apps location to a more appropriate home under
usr.bin/openssl.

ok deraadt@ miod@
Update regress to follow openssl(1) move.
remove nginx references
Implement table-driven option parsing that allows an application to
specify what its valid options are and where it wants them to be stored.
This also allows for usage to be generated, almost for free, ensuring
that the options and usage are automatically kept in sync.

This will allow for a single option parsing implementation, rather than the
current one-hand-rolled-option-parsing-and-random-usage-implementation per
application.

As a starting point, port the openssl(1) rand application to the new option
parsing and usage (along with associated code clean up).

With input from doug@.

ok bcook@ doug@
Add an option type that handles argument to integer conversion.
Reset the config struct before calling options_parse(), otherwise config
options from the previous run stick in interactive mode.
Convert openssl(1) prime to the new options/usage handling.
preserve errno value on success.

If getrandom returns a temporary failure, make sure errno is not polluted when
it succeeds. Thanks to deraadt@ for pointing it out.