add FlxTypedWeapon

This is added due to the depreciation of `setAll()`. 
`ForEach` requires strictly typed members.
Why is it marked as optional (`?`) if it's compulsory?