Change Kane and Lagrange attributes

- KanesMethod has q and u as full attributes
- LagrangesMethod has q as a full attribute
- KanesMethod now stores forcelist and bodylist as attributes
Add @property to some attributes

- KanesMethod.q, .u, .forcelist, and .bodylist are all read-only now
- LagrangesMethod.q, .u, and .forcelist are all read-only now
Revert "remove log.is_zero routine"

This reverts commit de47eb297f822edea3b70b8d8cf094072833b806.
Cleanup log._eval_is_zero, add tests
remove version constraint from pip install fastcache
Drop trivial log(1).is_zero test [skip ci]
Merge pull request #8053 from skirpichev/restore-log-is_zero

Revert "remove log.is_zero routine"
Removed redundant and confusing *doit* methods from Relational classes

see issue #8057
return 2 from _pi_coeff as per docstring
Merge pull request #8056 from pbrady/fastcache_update

pip install fastcache without version
factor out Dummy/Symbol sanitization; remove None, too

None was being converted to False by the bool(); it should
just be removed since this represents an unknown attribute.
Merge pull request #8060 from smichr/symbol

Symbol/Dummy should sanitize in the same place
make _sanitize a staticmethod of Symbol; use for Wild, too
Merge pull request #8064 from smichr/symbol

make _sanitize a staticmethod of Symbol; use for Wild, too
Merge pull request #8058 from skirpichev/rel-no-doit

Removed redundant and confusing *doit* methods from Relational classes
Add --rerun option (and counter) to bin/doctest.  Assures a consistent API for test and doctest
Merge pull request #8070 from pbrady/doctest_rerun

Add --rerun option (and counter) to bin/doctest.
Add is_algebraic assumption

See http://en.wikipedia.org/wiki/Algebraic_number
Adopt test: (sqrt(3) + S.Pi).is_rational is False
Add is_number property for AlgebraicNumber