Separated projectile logic

There is now a generic projectile, and a physical one which extends
that. I still need to create a way to add arbitrary functionality to a
projectile when it collides.