[6/24]: rework assumptions to use FactRules  (Basic)
[6/24]: rework assumptions to use FactRules  (Basic)

Rework Basic to use new assumptions interface. In particular:

- ._assumptions are initially created in shared state - i.e. in the hope that
  they will not differ from class.default_assumptions

- Basic.__getattr__ is reworked to call ._what_known_about() and to act as a
  upper-level cache (earlier caching was done in ._what_known_about equivalent,
  but the soon we hit the cache - the better)


Also, add a note that there are a *lot* of Add/Mul creations with the only
'assumption' commutative=True.

This slows things down, and frankly commutative is not an assumptions - it's
like a type characteristic - so I hope we'll deal with it some day.


Signed-off-by: Kirill Smelkov <b0eeaac46e675e9f95bf68c0df1041cf581c26f4@landau.phys.spbu.ru>
Signed-off-by: Ondrej Certik <b816faa87b7d35274d2e545c5be11ed4376f3ccf@certik.cz>
Signed-off-by: Mateusz Paprocki <4e51c28eba28c1534bcc4a6bd2cccd314d8bf749@gmail.com>

chaffra/sympy,skidzo/sympy,kevalds51/sympy,flacjacket/sympy,bukzor/sympy,madan96/sympy,liangjiaxing/sympy,bukzor/sympy,abloomston/sympy,oliverlee/sympy,mcdaniel67/sympy,postvakje/sympy,jaimahajan1997/sympy,souravsingh/sympy,skidzo/sympy,srjoglekar246/sympy,beni55/sympy,grevutiu-gabriel/sympy,emon10005/sympy,hazelnusse/sympy-old,sahmed95/sympy,Sumith1896/sympy,KevinGoodsell/sympy,mafiya69/sympy,jaimahajan1997/sympy,Titan-C/sympy,asm666/sympy,garvitr/sympy,maniteja123/sympy,AkademieOlympia/sympy,kaichogami/sympy,farhaanbukhsh/sympy,pbrady/sympy,MridulS/sympy,shikil/sympy,pandeyadarsh/sympy,souravsingh/sympy,beni55/sympy,MridulS/sympy,Curious72/sympy,abhiii5459/sympy,kaichogami/sympy,Sumith1896/sympy,jbbskinny/sympy,cccfran/sympy,kmacinnis/sympy,hargup/sympy,fperez/sympy,ahhda/sympy,Titan-C/sympy,moble/sympy,pandeyadarsh/sympy,toolforger/sympy,meghana1995/sympy,lidavidm/sympy,kmacinnis/sympy,amitjamadagni/sympy,jaimahajan1997/sympy,abhiii5459/sympy,rahuldan/sympy,oliverlee/sympy,wanglongqi/sympy,liangjiaxing/sympy,farhaanbukhsh/sympy,yukoba/sympy,sampadsaha5/sympy,kmacinnis/sympy,kevalds51/sympy,atreyv/sympy,Gadal/sympy,shipci/sympy,AunShiLord/sympy,VaibhavAgarwalVA/sympy,iamutkarshtiwari/sympy,Mitchkoens/sympy,mattpap/sympy-polys,kumarkrishna/sympy,postvakje/sympy,VaibhavAgarwalVA/sympy,MechCoder/sympy,hargup/sympy,sahmed95/sympy,cccfran/sympy,lindsayad/sympy,yukoba/sympy,Curious72/sympy,drufat/sympy,oliverlee/sympy,Gadal/sympy,kumarkrishna/sympy,farhaanbukhsh/sympy,moble/sympy,shipci/sympy,minrk/sympy,AunShiLord/sympy,vipulroxx/sympy,shikil/sympy,kaushik94/sympy,maniteja123/sympy,ryanGT/sympy,sahilshekhawat/sympy,jerli/sympy,ga7g08/sympy,kaushik94/sympy,ahhda/sympy,Shaswat27/sympy,chaffra/sympy,Gadal/sympy,Arafatk/sympy,iamutkarshtiwari/sympy,MechCoder/sympy,VaibhavAgarwalVA/sympy,abloomston/sympy,hazelnusse/sympy-old,sampadsaha5/sympy,AunShiLord/sympy,ChristinaZografou/sympy,saurabhjn76/sympy,amitjamadagni/sympy,mafiya69/sympy,Davidjohnwilson/sympy,lidavidm/sympy,dqnykamp/sympy,wanglongqi/sympy,Arafatk/sympy,abloomston/sympy,minrk/sympy,yashsharan/sympy,meghana1995/sympy,Mitchkoens/sympy,liangjiaxing/sympy,hrashk/sympy,kumarkrishna/sympy,mcdaniel67/sympy,saurabhjn76/sympy,skidzo/sympy,atsao72/sympy,jamesblunt/sympy,abhiii5459/sympy,kaichogami/sympy,maniteja123/sympy,wanglongqi/sympy,Vishluck/sympy,vipulroxx/sympy,Davidjohnwilson/sympy,MridulS/sympy,yashsharan/sympy,mcdaniel67/sympy,Sumith1896/sympy,souravsingh/sympy,cswiercz/sympy,sunny94/temp,grevutiu-gabriel/sympy,grevutiu-gabriel/sympy,beni55/sympy,garvitr/sympy,meghana1995/sympy,pbrady/sympy,toolforger/sympy,emon10005/sympy,Designist/sympy,kevalds51/sympy,iamutkarshtiwari/sympy,rahuldan/sympy,tovrstra/sympy,atsao72/sympy,bukzor/sympy,Shaswat27/sympy,hrashk/sympy,atsao72/sympy,sampadsaha5/sympy,aktech/sympy,lindsayad/sympy,jerli/sympy,emon10005/sympy,jamesblunt/sympy,atreyv/sympy,sunny94/temp,garvitr/sympy,Designist/sympy,dqnykamp/sympy,madan96/sympy,ga7g08/sympy,sahmed95/sympy,AkademieOlympia/sympy,debugger22/sympy,toolforger/sympy,saurabhjn76/sympy,atreyv/sympy,pbrady/sympy,ahhda/sympy,pandeyadarsh/sympy,ga7g08/sympy,shikil/sympy,lidavidm/sympy,hrashk/sympy,aktech/sympy,dqnykamp/sympy,wyom/sympy,Shaswat27/sympy,postvakje/sympy,ChristinaZografou/sympy,jbbskinny/sympy,wyom/sympy,Mitchkoens/sympy,MechCoder/sympy,ChristinaZografou/sympy,rahuldan/sympy,lindsayad/sympy,Arafatk/sympy,kaushik94/sympy,jerli/sympy,skirpichev/omg,mafiya69/sympy,Davidjohnwilson/sympy,cswiercz/sympy,diofant/diofant,moble/sympy,hargup/sympy,asm666/sympy,Designist/sympy,jamesblunt/sympy,Vishluck/sympy,vipulroxx/sympy,yukoba/sympy,debugger22/sympy,debugger22/sympy,aktech/sympy,jbaayen/sympy,Titan-C/sympy,shipci/sympy,Curious72/sympy,cswiercz/sympy,sunny94/temp,chaffra/sympy,Vishluck/sympy,asm666/sympy,sahilshekhawat/sympy,sahilshekhawat/sympy,AkademieOlympia/sympy,cccfran/sympy,drufat/sympy,madan96/sympy,drufat/sympy,jbbskinny/sympy,yashsharan/sympy,pernici/sympy,wyom/sympy