Fixed a bunch of logic bugs

Buff.use() was incorrectly applying buffs to properties instead of base
values, breaking the player object. This *should* be fixed now.

Auto-kill grenades weren't checking if their target was a fighter before
calling it's hp, causing a crash.

FriendlyMonster.take_turn() was making a similar mistake, causing a
crash.