Fix vigor drain not working on new characters/some very old characters.

Vigor drain is only calculated if iDeltaVigor is > 1000 (i.e. every one second) but there are cases where iDeltaVigor will return a negative number and prevent the character from losing vigor from running at all. 

piLastVigorDrainTime will now be updated when the character logs in so iDeltaVigor will always be positive.

Also cleaned up some of the code in UserMove.