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
If we decide to use it at some point of time, let me know and I can change the code.