I think we do still need `Meteor.startup`. This lets packages that load after autoupdate set things in `__meteor_runtime_config__`. If we put it at the top level, the hash will only include the config from packages that load before autoupdate, not later packages or config set from inside people's apps.

Putting it in Meteor.startup() is still not a general solution: people could set runtime config flags in their own Meteor.startup blocks, or at any time, really. But Meteor.startup() seems like a pragmatic compromise. The requirement that people set runtime config at top level, not startup, is not particularly onerous.

If we wanted to get fancy, we could make the `__meteor_runtime_config__` object read-only after the hash has been computed by setting a custom getter, or using Object.freeze or something. But that seems like it might be a bit overkill.