ENH: More Wester tests.
Tweaked tests.
ENH: remove trailing whitespace. Remove XFAILs for the sqrt() tests that now pass. Rename tests that take too long instead of commenting them out.
ENH: Explicitly skip tests that take too long. Some style changes. Use a better assertion for test_H4 such that the XFAIL actually XFails.
ENH: floor and ceiling actually are implemented.
ENH: fix the K4 and K5 tests thanks to fredrik.johansson.
BUG: I1 fails.
Added L tests (Zero Equivalence)
Added L tests (Zero Equivalence).
Hopefully the XFAILS really to fail.
Added some M. tests, fixed L8
Fixed factorint test.
The other two tests that fail work in the latest patch.
Added some more M tests.
Fixed M2.
Added M6 and M7
Minor fixes.
Added test M8.
Some changes added.  Tests added here need to be fixed
Add Wester file to repository for easy access
Cleaned up mess with 'include' keyword in sympy.polys

This is first step to disallow passing keyword arguments from
user level to low-level algorithms. In this patch 'include'
keyword was removed and new functions d*p_factor_list_include()
and d*p_sqf_list_include() added. One can still pass 'include'
to factor_list() and sqf_list() on the user level, but it won't
be propagated via **args but via calls of appropriate functions.

Basically, if keyword (on the low-level) made a function to return
different structure of a result than without this keyword, then a
new function will be added to simplify thing. If a keyword isn't
introducing structural changes then it will be propagated via
explicit argument. This verbose approach should make sympy.polys
understandable more easily.
Implemented configuration framework for polys module

Previously there were two methods used for configuring what
algorithms should be used and how they will perform:

1. Passing keyword arguments around.
2. Setting up global variables.

Now there is only one configuration approach, via polyconfig.

Consider the following example:

In [1]: from sympy.polys.polyconfig import query, setup

In [2]: query("USE_CYCLOTOMIC_FACTOR")
Out[2]: True

In [3]: %time u = factor(x**100 - 1)
CPU times: user 0.04 s, sys: 0.00 s, total: 0.04 s
Wall time: 0.05 s

In [5]: setup("USE_CYCLOTOMIC_FACTOR", False)

In [6]: %time u = factor(x**100 - 1)
CPU times: user 2.66 s, sys: 0.01 s, total: 2.66 s
Wall time: 2.75 s

In [8]: setup("USE_CYCLOTOMIC_FACTOR")

In [9]: %time u = factor(x**100 - 1)
CPU times: user 0.05 s, sys: 0.00 s, total: 0.05 s
Wall time: 0.05 s

This way several low-level algorithms can be configured and, for
example, benchmarking or algorithm parameters optimization was
made a lot easier.
Allow Poly(Poly(x), field=True) convenient shorthand