Fixes some minor mutation hp inconsistencies.

Moved some hp stuff into recalc_hp so that the penality wasn't bypassed by another call to recalc_hp(). This also prevents the player from getting cur_hp values that were higher than max_hp.