Generic QuadTree - see http://kirstywilliams.co.uk/blog/2012/08/quadtrees-java-implementation/