Move core classes to more specific subpackages
Totally restructured using Java8-like function classes.
Restore files lost in the previous commit
Remove github plugin