Retain original input for campaign spec
Created by: eseliger
Currently, the spec sent to the server is created by json marshalling the CampaignSpec struct. That, however makes us lose the original formatting, comments and yaml format, if used. Since we want to show the spec that this campaign was created from in the UI, we need to retain the original input.
@LawnGnome I'd like your review here, as I might be missing a point where the struct is modified, but the raw spec isn't.
Works on https://github.com/sourcegraph/sourcegraph/issues/13210