Chnaged passing of share_ptr

-Will now be passed by copy
-Changed it because the cost of passing by copy is minimal and passing
by reference can lead to undefined behaviour
Added bounds check for ApplyConfig()

-For decreasing the value, it checks that it can be increased by that
amount without overflowing.
Added bonus reset to ApplyBonus_Death()

-ApplyBonusDeath() did not clear bonuses for the player who got the
DeathBonus