Bounding areas

This is a first step towards collision management. It provides support for defining and building bounding areas for entities. BoundingAreas provide a method to calculate distances that will be used in an upcoming PR. In the future they could also have methods for interesections.