A modest proposal for fixing old assumptions before the release

Here is a more modest version of https://github.com/sympy/sympy/pull/8134, which I can hopefully finish up soon so we can get a release out. That PR should still be finished, but I don't think we should block the release on it.

So far I have my improvement to the facts algorithm. The tests all pass. Travis times are pretty variable, but comparing https://travis-ci.org/asmeurer/sympy/builds/38447593 to https://travis-ci.org/sympy/sympy/builds/38807940 it seems as if this is no slower, and possibily even faster. 

I will also cherry-pick the fix for `finite -> !infinite`, as this is a new predicate and we should get the facts for it right the first time. I will also see if `complex -> finite` doesn't need too many fixes. The rest require too many fixes to finish in a reasonable amount of time (and anyway, I think it would be better to make all breaking assumptions changes in one release). 
I like this code as it is. It maps directly to the pseudocode in the paper, and it seems to be fast enough.