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
Not sure why we need hooks. As for log level, I'm fine changing it, but I don't see a strong need to do so. Every single log is for debugging.