On some maps a player on the first team in a 4v3 matchup might be placed on the half of the map with the three players on the second team, which doesn't seem fair. Plus on some maps the formulas for getting the angles are messy and (seemingly) can't be adjusted easily.
Here we add a function to split a sorted list of players (from sortAllPlayers) into two sides with teammates on the same side. Note that in a 5v3 for example this will put five players on one side and three on the other. (We can use a simple greedy algorithm to calculate the sides, since I think the first example where that fails is 12 players on 5 teams: 3+2+2 vs 3+2, where ideal is 3+3 vs 2+2+2.)
We also add a function to place players on the maps that use two arcs. This is done for m players by dividing the arc from startAngle to endAngle into m+1 pieces and using the m inner points as player positions (ignoring the two endpoints). This seems to work fairly well.