Add a more efficient way of protecting regions with Cuboid objects

This can be more efficient because all cuboids are iterated through one listener instead of one per class (if they use protecting regions on buildable maps)