Blackbox Module Hierarchy Support

The blackbox algorithm now supports the black-boxing of entire module hierarchies. The same rules still apply as when black-boxing a single module (i.e. no output channels, runtime components, etc.). Blackbox collects all unique module definitions and generates both a source file (*.f) and a compiled object file (*.obj) for each. It also goes one step further and binds all object files into a single static library (*.lib) file.