Implemented cached weapons - update ammo timer in bg
Added className to all inherited objects

Must actually name the constructor for the to work. Updated accordingly.
Also added some additional abstraction to weapons