Contruct Battlefield Step 4

Done:
1. Weapons firing supported.
2. Implemented normal bullet.
To do:
1. Refactor weapon system, expose configurable data as much as possible.
2. implement laser type and missile type projectile.
3. Dummy enemies + hit + damage.
Refactor Weapon

Remove class Barrel. Barrel is just a data inside Weapon now.
Remove ProjectileFacotry

Doesn't need the factory pattern to create projectile right now.