Add monomials.cpp/h and rings.cpp/h

So far implement only monomial_mul
Implement poly_mul
Implement Integer::as_mpz()
Implement expr2poly
Simplify
Add test_poly
Fix a bug
Fix another bug
Add a test for monomial_mul
Implement Pow handling
Implement Symbol handling
Print P1 and P2
Call poly_mul
Measure time
Keep incrementing
Simplify the code
Merge pull request #13 from certik/polys

Initial implementation of sparse polynomials