Adds Hanging & Projectile entities, with Entity/Voxel projectile sources

Adds Hanging and Projectile entities, along with a `ProjectileSource`, and `Voxel` and `Entity` source children
I guess the `***Entity` naming would be closer to the others, but not all entities are named this way either, like `Player`, and once we add specific entities like `Cow` I'm not sure that will be either. This is closer to how Bukkit wrote it, but I'm open to debate on it.