It looks like there are a number of bugs in this code (for example, `template.Variable` throws if `program_variable` is None; `url` is used instead of `self.url` in places; etcetc).

Rather than fixing them I'm going to remove `program_variable` (and `render_inline_program_qsd`, and `prog_qsd_url`) and specify the URL explicitly instead; I think this makes more sense because QSDs are keyed by URL in the first place.