Shuffle packages to more logical structure for the future.
Use diamond operator where possible.
Add configuration options for the java plugin.
Prefer standard library charset constant over Guava.