Work on Plugins

Modified the architecture to support specialized plugin objects and
overarching program handles. These plugin objects would give a program
an ability to execute in a focused and consistent manner.

Still need to modify saving/loading functions to be consistent.