Expose a unified, extensible command line interface

Fix some issues with generating fat/shadow jars
Merge branch 'feature/cli' into develop