Adds restrictions to player join and color set.

Two players in the same game may not have the same name.
Two players in the same game may not have the same color,
 unless that color is null.

Tests added for both of these conditions.