refactoring canshoot

moved helper functions above start()
added a ShootDir function that interprets its input as an angle (Shoot assumes its input is a position)
changed Shoot to use ShootDir by converting it's input from a position to an angle
CanShootReload now overrides ShootDir() instead of Shoot()
implemented scattershot and refactored code for shooting