Renamed weapon:update() to firing(), added update()

Update is always called every frame, even when not firing. This allowed
projectile weapon shot delay to be implemented properly.