mob/Bump() refactor. OOPing and general cleanup.

Removes copy-paste. Creates three new mob/living procs.
ObjBump, MobBump and PushAM which are called by mob/living/Bump().
Removes a ton of copy-paste and needless code.
Also fixes simple_animal Bump() on harm intent.
Previously, they'd move twice.
Fixes #3550
Merge pull request #6162 from tkdrg/simplepush

mob/Bump() refactor