Verification of Przytycki's congruence works fine, however there are
some small modifications that could be made.
The, naive, approach to the verification of periodicity congruence for
the Khovanov polynomial didn't work. There are just too many cases to
check. Generation of all of them can exhaust the memory.
Z and Q use now smart pointers for storing their internal
implementations, which were changed to use mpz_class and
mpq_class. New implementation uses copy on write. Moreover, I added
moving semantics for these two classes.
(sseq, module) appropriately; removed algebra/laurentpoly.h and added
algebra/multivariate_laurentpoly.h. Added io, muladdeq to Z. Added
functions open_file, close_file to lib/io.h. Added operator < to
map_wrapper.