Serialized list of TrainingCost

fixes #44 (NRE when loading training costs)
fixes #48 (reduced the Skilled cost from 150 to 120)

The UpgradeCost type has been replaced by TrainingCost, which also
contains a SkillLevel field for the level it refers to.
The training costs are now stored in a List instead of a dictionary: the
file is an xml file and the list is loaded by deserialization of this
file.
The general configuration file is abandoned in favour of splitting
configuration among different files.