Only a couple of these functions would be needed during initialization. In the next couple commits ProcessContext will get a way to access auxiliary IO, so this really had to be separated.
Instead of having a function on ProcessContext.
This now lets you have parameters that cannot be automated but that are still changeable through the generic UI.