CLI: Add support for a configuration options file
This adds support for creating a ~/.config/volatility3/vol.json or volshell.json file to handle standard command line parameters. The ordering will go:
Command line parameter else
JSON command line parameter else
Constants.py file else
Hard coded default
The last two may be slightly conflated, since the hard coded default might be the value from the constants.py file.
I'd considered adding the CLI config to the volatility context config, but I think that might muddy the waters, with the UI variables accessible to plugins. Plugins should not need to be interrogating the UI, the UI should tell the plugin everything it needs to know upfront.
This doesn't immediately deal with parameters that aren't exposed by the CLI, but it does offer the ability for the JSON to store additional options that could be used by other features (such as renderers). I still feel these options should be exposed programmatically, so different UIs can offer means of setting them (since not all other UIs will use the config file). I still think this is a reasonable solution, slots in cleanly to the UI and provides expansion capability with a bit more consideration. JSON might be a little too descriptive, given the CLI technically only takes specific types, but I think it will help with future expansion, and we've got space for type checking on load.