Add CBM shockwave generator, add knockback() to implement it

CBM shockwave generator knocks all monsters and npcs within 3 tiles back up to 4 tiles, stunning them for a guaranteed 2 turns and possibly more. Targets which collide with other monsters are stunned for their remaining momentum, and the momentum is transferred to the new victim, which can itself collide with other monsters or walls. Targets which collide with impassable tiles take damage equal to the remaining momentum times a damage multiplier and are stunned for a duration equal to the remaining momentum. Impassable tiles collided with are bashed once based on the remaining momentum and damage multiplier.

It costs 10 energy to activate, has the same rarity and installation difficulty as the melee class CBMs, and is listed with them in mapitemsdef.cpp.