Rewrote & combined Tabular.cpp and Element.cpp into a new `Group` class that
acts like `Tabular` and has a custom element type that can be multiplied etc.
C++: Added a "group_mismatch" exception
Gave Group.hpp optional membership checks in methods that take `Element`s