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
Why default to `text/plain` if it's not one of the accepted mime types in `extractBuildPackage`