Support creating and modifying repos

There are a few TODOs in here which I plan to address, but opening to get feedback on the approach so far.

ping @titanous 
This might predate this PR and be an overly broad question, but... Given that there's a finite list of recognized metadata, might a structure be better suited here?

Even if the most useful serial form for every field might still turn out to be `json.RawMessage`, it would be nice to be able to attach documentation to each field giving a brief discription of the expected structure of the body.