Rationalize `build` and `hack` directories

This also enables incremental builds for dockerized builds.

Fixes #1729
This is related to my stack trace stuff.  We want this to be a clean exit without a command ever returning an error.