Decoupled spatial partitioning

Body doesn't own spatialInfo anymore - it holds a reference created by
spatial, and destroys it on destruction
Grid inherits SpatialBase, has a MemoryManager<GridInfo> which owns,
stores and manages GridInfo*
Grid creates new GridInfo* with createSpatialInfo
Grid deletes GridInfo* with delInfo
World owns a SpatialBase*
World doesn't have a public constructor, it's created with
World::create<TSpatial, TArgs...> variadic template
More changes

delSpatialInfo is now part of SpatialBase (and must be overridden)
destroy is now part of SpatialInfoBase (not virtual)
SpatialInfoBase now holds a Body& and a SpatialBase&
Removed useless SpatialBase& from Body
Name refactoring
Some const!