improve CSS to get some room between the new buttons
remember whether we generated the code or not

this will help the frontend decide whether to show a QR code or not: if
you just pasted in an invitation string that came from elsewhere, we
should never show the QR code
refactor frontend invitation: deliver 'generate' flag

This removes the "generate-invitation-code" backend API: instead, we
call invite with generate=true.
only display the QR code when we generated the code ourselves
store mailbox offer (and whether to accept it) in DB

This moves us closer to being able to accept mailbox updates, or to
decide about accepting the offer long after it's been received.