Remove most static methods and unify 'valueOf'/'values' functions on GameRegistry

It's more consistent to have all these functions unified, and easier on alternate implementations to have them accessed via pure interfaces rather than requiring injection of one-off factory types for each individual thing.