Allow Variable Modules in Portals

I think this is a very good idea as I have had this similar need before. It is equivalent to providing the portal with the ability to dynamically update. I previously turned the portal into an upgradeable contract to meet the needs of dynamically updating code. I think the Variable Modules solution is more flexible. If a module changes, you only need to replace this module.