in fcn expand_mp_events, also collect addon_ids, for mp_settings

At the same time that we expand multiplayer events, by looking up
the tags of the given ids from the game config, we also note their
addon_id field if present and write this list to the mp_settings,
which will become an attribute of the [multiplayer] tag for the
scenario. When the scenario is hosted, this will tell other
clients what addons they can download to be able to play.
in mp lobby, try to download addons if we can't join a game

If we try to join or observe a game but don't have addons to do it,
ask if we want to try to download them, then call addon client code
to initiate transactions.

Note that because the "is_joinable" / "is_observable" logic includes
this stuff, we would have to refactor to be able to determine
"would this game be joinable if I downloaded the addons". So in the
current state, it's possible that you will be prompted to download
add-ons for a game that you ultimately cannot join anyways, which
might be a bit dissappointing.