Add job abstraction to spawn and link to processes

Change-Id: I738ac3b267da21909cde32164a06c4187071b943
Initialize logger on start

Change-Id: Ib65fae7b4d25d3c3e5ac5888125ef9169c9dd320
Implement spawn/link

Change-Id: I35fc2c4531ceab96232bd0c8d7f1ada40fdc99aa
Log snapshot before writing it

Change-Id: Ib5f5d220a30a7a35025955ec77f0aec0a091affd
Map jobs by string job id

Change-Id: I38453ad3a7c56a21069c5a8db4df7e0f73ae70ed
Make logger a named field of the container struct

Go has trouble marshalling structs with anonymous fields.

Change-Id: I9e809307795f54d6f004e04b08bd648bfeb1a60a
Ignore interface when marshalling a job struct

Change-Id: I4d6859047eac2f23293b4409125c3fcc6ac454ee
Implement stream

Change-Id: Idb2a4755114000addfbff99d6fe8ad8faac1caa5
Add error response to protocol reader

Change-Id: I42cb8ae2e74d91d9b85d71801181decc91da3b58
Add initial integration tests

Change-Id: I5b82ce2f7de87de86b73561a2a6bc26b56ff6b0c