Weapon Factory

Added the weapon factory class and have a basic implementation (will
require fine tuning) done. There are two methods so far: RandomWeapon
and GetInstance. RandomWeapon returns a randomized weapon, and
GetInstance returns a weapon based off of a string of parameters.