Added Spawner component

Note: this component still has a few bugs. Mostly making this commit so
I can sync to my new laptop :P