Started on the plugin system

Implemented the core of the system: IExtensiblePlugin