add FlxTypedWeapon

This is added due to the depreciation of `setAll()`. 
`ForEach` requires strictly typed members.
Is it possible to have non-optional parameters after optional parameters?
Not sure if the order should be changed, it may break existing codes.