Add state.apply function
initial implimentation of #16901

This still needs testing and some functional review

The idea is that state.request is executed and it does a dry run
of the execution and saves what will change securely in a request
file. Then state.check_request will return the requested jobs
state.run_request executes the job. Jobs can also be named, so
a number of jobs can be set up.
apply name capabilities to run_request
lint and cli example for request
Merge pull request #16905 from thatch45/state_req

Add the ability to set state requests