jenkins 1.558

Closes #28303.

Signed-off-by: Brett Koonce <koonce@gmail.com>
Allow factory to pass an options hash to the formula instance
Decouple spec selection from ARGV entirely
Add ARGV.spec and use it as the default
Drop support for defining options as a method
Initialize BuildOptions lazily
Move some behavior from BuildOptions into SoftwareSpec
rip out dependency handling
update method name
import new dependency resolver
don't iterate the stack just to calculate the depth
the requester of a FormulaRequest is always the user
simpler API for adding requests
carry more context forward

in addition to the direct parent of a dependency request, we also want
to track the original formula request that brought it into being (i.e.
what the user originally requested).