Upgrade

Upgrade able to create actions, apply actions, and update actions correctly.

Also used reflection helper for upgrade activation. Worked pretty nicely=).

Upgrade is not put into GameState (there's no point for that since it can't be visualized anyway). I created a UpgradeTest in rts/tests package. If you run the test, it will print out the current upgrades available in console, and you can indicate the upgrade you want to activate by typing the name (which will find the action). Then the actions will be updated, and a new list of current upgrades and the result of the upgrades will show up. The tree is also generated using Factory. So the whole process is working.

The structure of the tree I used was,
Boost1 (updates health) - Boost2 (updates health)
CanAttack (makes it can attack) - DamageBoost1 (updates damage)
                                               (also after CanAttack) - RangeBoost1 (updates range)