[CR] Adding skill_modifier attribute to gunmods and guns.

The property skill_modifier can be either positive or negative, to represent that it either makes the gun easier (positive) or harder (negative) to use. This in turn modifies the dispersion skill thresholds in the ranged.cpp method calculate_missed_by(). A positive skill_modifier increases the player's ranged perception mod as well. A negative one has no effect on perception_mod. Does it make sense to have ranged perception mod linked like that?

For now I've modified the sight-related gunmods to give 1 or 2 points of skill_modifier. I lowered dispersion_modifier accordingly - do you think that's a good balance? Should dispersion_modifier bonus for these be eliminated entirely?

This could also be applied to individual guns. For example, this would allow the JSON to express that Gun X is hard to use properly or Gun Y is particularly user friendly. Perhaps different skill thresholds between the types of guns?

Comments are welcome. Feedback has changed this idea quite a bit already. 

(I'm not sure why the diff for itypedef.cpp is weird)