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.