Make UI less hardcoded

For now it only works for Battlescape, but I expect other places could be modified as well (though I don't think that's a good idea).

The UI is loaded from a YAML file. Most of the code (apart from BattlescapeState constructor) is unchanged.