Add a world collection class, accomplishing issue #15 for the C++ lib