feat: invite trazability via inviteLog and pub-invite SSB events
tribes_model: generateInvite() stores inviteLog[] entry {code, generatedBy, generatedAt, status}
joinByInvite() updates inviteLog entry with {usedBy, usedAt, status:'used'}
main_models: acceptInvite() publishes type:'pub-invite' SSB message after handshake
records pubHost, pubKey, acceptedAt - first audit trail for pub invites
blockchain_model: adds 'invites' filter showing pub-invite blocks and tribes with inviteLog
blockchain_view: renders inviteLog table on tribe blocks, renders pub-invite block details
adds 'invites' filter button to blockexplorer UI
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>