CoCoALib: A C++ Library for Computations in Commutative Algebra... and Beyond