Well, the old rule of thumb is every GPO is typically a registry setting somewhere. You might want to take a look here:
https://technet.microsoft.com/en-us/library/ee461027.aspx
Start with the Set-GPRegistryValue
section. Looks like this would be the primary way to modify GPOs via PowerShell. You could start with a GPO that has some of these software restrictions and then use the Get-GPRegistryValue
cmdlets to the basic setup for a software restriction and then just write a script that adds more to it when needed. I've never used these specific cmdlets but I've used the GPO module many times to do many things and it is fairly decent. I may look into it further some time and let you know.
Keep in mind that GPOs are stored in two places, on SYSVOL and there is an AD object. There is versioning in place and it is not recommend that you modify configuration files directly (obviously uploading scripts and msi files for software installs is a different matter).