Foundational support for UI output from provisioners

This PR lays the core code necessary for provisioners to output to the UI. It does two things:

* Add a new `UIOutput` interface
* Modify the `ResourceProvisioner` to add the UIOutput

This doesn't modify any provisioners yet to add the output.