General code cleanup, introduction of base plugin

This pull request addressed the following:

* Update of Nebula plugin versions
* General code cleanup
    * Removal of unused code
    * Broke out inner classes for better maintenance
    * Introduction data types for all task input/output properties to improve usability for end users
    * Introduction of base task type to reduce code duplication and allow for easier configuration
    * Addition tests
* Introduction of a base plugin so plugin users can create their own tasks and take full control
This was supposed to become a different PR. For now I just wanted to clean up code. I can put it into the same PR though.