Change the Singularity build to basepom.

Clean up the build and dependencies to use basepom.

The main change for the applications is that all of the executables
are building both a dependency jar and an application jar (which has
the "-shaded") qualifier. This allows depending on pieces of the
executable code without dragging in dependencies that are not needed.

The various checkers in the build make sure that all required
dependencies are properly declared and no duplicate classes sit on the
class path.