Moves Models to Common and Creates V2 Boardgame Factory

Moves all models from the V2 namespace and into the Common namespace.
The goal is that both v1 and v2 use the same models. It doesn't matter
which API creates the objects, you interact with them the same way. The
only thing different is where the data comes from and the format of the
data.

Moves the creation of objects from the BGG XML out of the response
objects and back into factories. This allows us to create an abstract
response class that has most of the functionality already complete and
all children class need to do is specify a default factory if the user
does not manually supply one. Additionally, this discouples the task
of decoding the data from the response object and allows us to use the
logic of converting from xml to models anywhere necessary.