Character class now uses BasicConstruct

This is necessary in order to have the Leveling trait
automatically create objects in its own setup functions. Also
Added a setup() function because previously there were order
of operations errors occuring trying to calculate stats that used
character->level.
Gave a default to the BasicConstruc constructor
Convert level into a seperate class

This allows it to use the Calculable trait. Currently we're
not performing any calculations, but we will be eventually.