Installers and the node/server API

This patch series implements data-driven installers and the API that node and server use to communicate during the provisioning process.

There's still a good number of tests that should be written, but I'd rather commit what I have now and then improve incrementally than wait till it's perfect.

When reviewing this, please point out tests that you think are missing, along with everything else of note