Mission objectives

This PR adds support for mission objectives.  The GUI parts will come in a later PR since they conflict with pchote's new RA UI.  For the curious, the GUI based on the old UI is [here](https://github.com/OpenRA/OpenRA/compare/OpenRA:bleed...obrakmann:mission-objectives-gui).

A few words on how this works: the backend only holds the information about the objectives. The decision whether an objective is failed or completed lies in the hands of the scripts. The backend however *does* determine whether *the game* is lost or won.

There are primary and secondary objectives. The game is won when all primary objectives have been completed. Secondary objectives do nothing.
This feels like an oddly specific thing to have here.