Implement elemental affinities

Enemy definitions can specify damage modifiers for different elements
and weapon types.