Convert project to maven, except Essentials

Recreate #5 with a separate branch.