Decouple weapons from gameobjects

Specific weapon scripts are now instantiated by the attack info hub,
rather than existing on physical game objects.