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
What I mean by sanitizing is that if this value is provided by the user, we have to make sure it doesn't contain a value that would allow them to access files outside the build context (i.e. a value of `../../` or `/<something>`).  Sounds like it's not provided by the user though, so no need to sanitize