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
I thought the overrride plugin was going to remove the need for this? I get that the keys would be different, but that's ok. Or are you saving this for another PR?