Improved shooting: proper randomization, added weapon's accuracy

Properly randominzing shooting vectors in single & burst modes
Weapon's can have different accuracy values
Minor refactoring in base_math