Add Team.CreateFromTemplate

Team.CreateFromTemplate allows the production of teams from a list of
actor types, assigning a function to that team once it is complete.

A 'template' in this case looks like this:
template = { {factory, {list of units to build using aforementioned factory}} }
e.g. template = { {barracks, {"e1", "e1", "e1", "e3", "e3"}} }

You can also build teams using multiple factories like this:
template = { {barracks, {"e3", "e3", "e3"}}, {war_factory, {"3tnk", "3tnk"}} }

Before using Team.CFT you have to setup the involved factories'
Actor.OnProduced event handler once. Here's a snippet of code that works
well:

Utils.Do(Actor.ActorsWithTrait("Production"), function(factory)
  if Actor.Owner(factory) == ai_player then
    Actor.OnProduced(factory, function(fact, unit, ex)
      if Production.EventHandlers[fact] then
        Production.EventHandlers[fact](unit)
      end
    end)
  end
end)

If Team.CFT is used, you should make sure that any builds that were
started with the lower-level Production.Build* functions have
finished by the time you call Team.CFT. Calling the Production.Build*
functions directly during or after Team.CFT is safe however.