emitGraft
Re-emit base with the added declarations appended, opened by revealAccess — they are added after widenClassFile ran, so nothing else would open them. Descriptors come from the intermediary side and are renamed on the way in; bodies are aconst_null; athrow, since this jar is only ever compiled against.
A graft may land on a name the class already carries — Mixin merges Forge-compat and fluent-wrapper methods under names the rename also produces. Both maps below are seeded from base, i.e. AFTER the rename, since that is the only namespace the two sides share; the base seeds them first, so an added member never takes a name off the class it was grafted onto. Added members are walked open-first for the same reason — between two grafts, the one already visible keeps the name.