Character Factory added

Characters are now created through a proper factory, which can also be
used to get the data used for a character (used for character selection,
etc)