polys: Fixed Poly({}, x, y, z)
polys: Fixed trivial corner cases in factortools.py
polys: Added preliminary support for lpoly2

This is based on Mario Pernici's lpoly2 branch. Only general structure
and arithmetics of sparse polynomials were ported for now. Everything
was (at least partially) adjusted to reuse SymPy's functionality (e.g.
domains). Also naming conventions were changed (lgens == ring, ring ==
domain). Remaining code and tests will be added in later commits.
polys: Rewrote most tests/doctests using human readable syntax