Java as a plugin now requires you to create an instance, it is no longer static. NukePlugin has a method called checkPath which takes a String in, and checks if that is a command, if not, it returns a BuildState.FAIL, if so, it continues on.
Added new run method for running inside of Nukefile, and then say the build state at the end.
Changed the name of the Java plugin to JavaPlugin, so it's more distinguishable from other classes. Also removed the failBuild function from JavaPlugin, it was unused after switching completely over to the BuildState system.
Memoized a select amount of methods, possibly help on speed a bit.
Added a final boolean in the Nuke instance named DEBUG, and if set to true(done via an optional parameter as "--debug"). Now fails the build if the Nukefile was not found, or a task was not specified. Will likely show usable tasks if one is not specified already, this will also be accessible via a task called "tasks".
Added a doc to the plugin(pluginName) method, and added a TODO(very long one indeed).
Added a method to override to get required plugins(will be used later).