Fix caching of combined bitmaps after complex shaping

Should I define the struct with a proper name somewhere? Where?

Is it a concern that CompositeHashKey::str now takes up ≥ 4 times as much space? (Only for non-drawings.)