rem: operator<(const Slot &a, const Slot &b)
add: operator<(const Metrics::Ligature3 &l1, const Metrics::Ligature3 &l2)
context: operator<(const Slot &a, const Slot &b){    // note: will give real glyphs priority over virtual ones at a given    // priority    return (a.lookup_source < b.lookup_source	    || (a.lookup_source == b.lookup_source		&& (a.score < b.score		    || (a.score == b.score && a.glyph < b.glyph))));}