libgui: Added KdTreeAtlasAllocator

KdTreeAtlasAllocator uses a 2D BSP tree to allocate space from an
atlas. Optimization is done by allocating the biggest ones first
(by area).

Updated GLSandbox to try out the new allocator; made some changes to
de::BinaryTree to allow clearing and copying trees.

Based on danij’s old textureatlas code.