Resolves#354's one-step link read (#418) with this PR's inherited-category
link rows: one aliased SELECT, the JSON wrapper carries the raw categories only
for a category read (plain reads stay as #354 measured), and the one-step and
streamed paths build LinkMatch through one helper. #354's equivalence tests
move to this PR's get_image_link_matches(q, tags, category=) signature and
4-tuples, plus a category read in one step and a BLOB category that streams.