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.

Main benefit (at least for me) is running findbugs and pmd on the code. Also the dependencies are tighter controlled. 

Main benefit for the singularity build is the reduction of the pom sizes (and removing most of the questionable shading code) and using uniform build practices.