Created generic base EntityProjectile class

In order to create ammo more easily, there is now a generic
EntityProjectile class that is abstract - therefore it is unable to be
instantiated. Now, using this framework, EntityFlyingCarrot has a
smaller delay before exploding, it also doesn't drop the ammo.