Initial functional checkin of the controller

Note: This does not yet handle artifacts, nor the logs from the builder-core, as we don't yet have those interfaces exposed
I'd be fine doing so if we only supported `.tar.gz`, but since this also supports `.zip`, that interface requires a TAR file on disk.