Added Media.PlayMusic to the Lua API

and make use of it on the shellmaps to fix https://github.com/OpenRA/OpenRA/issues/6071.
Oh god, please, don't do that. There's a reason I didn't add that function in the first place.

Objectives start out in the incomplete state, but must not ever return to it. That way lies madness and horrid game play.

These are the valid state transitions for objectives:
`Incomplete -> Complete -> Failed` or `Incomplete -> Failed`.

Allowing objectives to return to the incomplete state *will* be abused by map scripters who didn't think their objectives through properly, which will in turn confuse players and fall back on our single-player experience.

Please just drop this whole commit, or if it bothers you that much, drop the whole `Utils.Do` block.