Faster map preview generation.

Some changes that make map generation fast enough to look mostly instant.

One change was to no longer show the placeholder widget in the preview. I've just removed it in code but if there's a more sensible place to remove it (a template somewhere?) could you point me towards it.

Resolves #3732 by just making the delay a non-issue.
I think this one is easier to read as functions. Both sides are nontrivial.